Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Определение выбор пользователя


Автор: vitalina 28.11.2007, 16:42
Задача:
[pre]
   Люблю                     Ненавижу           * - радиокнопка

* Красный                  * Красный
* Оранжевый             * Оранжевый
* Синий                     * Синий

Пользователь отмечает цвет, который ему нравиться и цвет который
он ненавидит. Нажимается кнопка и выдыется результат:

(Допустим ему нравится красный цвет и ненавидит синий)

Если вам нравиться красный цвет, то ...

Если Вы ненавидите синий цвет, то ...

[/pre]

Автор: Castro 28.11.2007, 17:49
vitalina, ну и в чём задача?

Автор: Castro 28.11.2007, 18:12
Вот наваял- мож поможет

Код

<html>
<head>
<title>Название</title>
<style>
    HTML, BODY
    {
    width: 100%;
    height: 100%;
    }
</style>
<script>
function test()
{
    var text='';
    var a=document.getElementsByName('bttn1');
    var b=document.getElementsByName('bttn2');
    for(var i=0;i<a.length;i++)
    {
        if(a[i].checked)
        {
        text+="Если Вам нравиццо "+'<b>'+a[i].value+'</b>'+", то Вы диб..."+'<br>';
        }
    }
        for(var j=0;j<b.length;j++)
        {
            if(b[j].checked)
            {
                text+="Если Вам не нравиццо "+'<b>'+b[j].value+'</b>'+", то Вы дур...";
            }
        }
    document.getElementById('diff4ik').innerHTML=text;
}
</script>
</head>
<body>
<form>
Нравиццо<br>
<input type="radio" name="bttn1" value="Красный">Красный<br />
<input type="radio" name="bttn1" value="Голубой">Голубой<br />
<input type="radio" name="bttn1" value="Зелёный" checked>Зелёный<br /><br>
Нинравиццо<br>
<input type="radio" name="bttn2" value="Красный">Красный<br />
<input type="radio" name="bttn2" value="Голубой">Голубой<br />
<input type="radio" name="bttn2" value="Зелёный" checked>Зелёный<br /><br>
<input type="button" value="Прафериць" onClick="test()">
</form>
<br>
<br>
<div id="diff4ik"></div>
 </body>
</html>

Автор: vitalina 29.11.2007, 12:24
Спасибо, конечно, большое, за скриптик. За Ваш лексикон отдельное спасибо! smile 
Скрипт не помог. Текст пишется в зависимости от выбранных цветов, а не простое определение выбора. 
Всё равно пригодиться где-нибудь. 

Кстати, уже сумела решить эту задачку по-своему с помощью switch.

http://vitalina.jino-net.ru

Автор: Castro 29.11.2007, 12:34
vitalina, ну так определение выбора и есть собственно то, что выбрал юзер радиокнопками. Или нет?
Текст можно любой вставить - это вообще не проблема, если есть основной движок. 

Автор: vitalina 29.11.2007, 19:08
А как ругаться, если он выбрал одинаковые цвета? 
Любит - красный
Ненавидит - тоже красный



Автор: Castro 29.11.2007, 20:10
Что-ти типа этого
Код

function test()
{
    var text='';
    var a=document.getElementsByName('bttn1');
    var b=document.getElementsByName('bttn2');
var  answer1='';
var  answer2='';
    for(var i=0;i<a.length;i++)
    {
        if(a[i].checked)
        {
answer1=a[i].value;
        text+="Если Вам нравиццо "+'<b>'+answer1+'</b>'+", то Вы диб..."+'<br>';
        }
    }
        for(var j=0;j<b.length;j++)
        {
            if(b[j].checked)
            {
answer2=b[j].value;
                text+="Если Вам не нравиццо "+'<b>'+answer2+'</b>'+", то Вы дур...";
            }
        }
if(answer1==answer2)
{
alert("Чувак! Определись что ли!");
}
else
{
    document.getElementById('diff4ik').innerHTML=text;
}
}
</script>

Автор: vitalina 30.11.2007, 13:29
Да! Большое спасибо! smile  smile  smile

Добавлено через 13 минут и 27 секунд
А я пыталась сравнивать *.checked

Автор: vitalina 30.11.2007, 14:08
У меня немножко по-другому написано без этого сравненя у меня все работает, но с ним answer не определяется, хотя я и присваиваю её значанию


Код


function show_selection() 
{
love=new Array("Êðàñíûé", "Îðàíæåâûé", "Ƹëòûé", "Çåë¸íûé", "Ãîëóáîé", "Ñèíèé", "Ôèîëåòîâûé")
notlove=new Array("Êðàñíûé", "Îðàíæåâûé", "Ƹëòûé", "Çåë¸íûé", "Ãîëóáîé", "Ñèíèé", "Ôèîëåòîâûé")

love_notlove=new Array(love, notlove)
common=love.concat(notlove);



    for (i=0;i<document.f1.color.length;i++) {
    if (document.f1.color[i].checked) 
    switch (i) {
        case 0:
            document.write("violet")
            break
        default:
            alert(love[i])
answer1=document.f1.color[i].value;
                }
                                                }
    for (j=0;j<document.f1.color2.length;j++) {
    if (document.f1.color2[j].checked) 
    switch (j) {
        case 0:
            document.write("violet")
            break
        default:
            alert(notlove[j])
answer2=document.f1.color2[j].value;
                }
                                                }

if(answer1==answer2)
{
alert("?????! ?????????? ??? ??!");
}
}

Автор: vitalina 30.11.2007, 15:02
У меня просто значений в форме не было. Я обошлась без него.

Только всё равно не получается. В чем ошибка? Все время пишет одну и ту же фразу! 

Код

function show_selection() 
{
love=new Array("Êðàñíûé", "Îðàíæåâûé", "Ƹëòûé", "Çåë¸íûé", "Ãîëóáîé", "Ñèíèé", "Ôèîëåòîâûé")
notlove=new Array("Êðàñíûé", "Îðàíæåâûé", "Ƹëòûé", "Çåë¸íûé", "Ãîëóáîé", "Ñèíèé", "Ôèîëåòîâûé")

love_notlove=new Array(love, notlove)
common=love.concat(notlove);



    for (i=0;i<document.f1.color.length;i++) {
    if (document.f1.color[i].checked) 
    switch (i) {
        case 0:
            document.getElementById('selected_radio').innerHTML="Âû ëåãêî ïðèõîäèòå â \
                                                                âîçáóæäåíèå è íå ëèøåíû \
                                            ÷óâñòâèòåëüíîñòè, ëåãêî ïðèíèìàåòå ðåøåíèÿ è \
                                                            ñòðàñòíî åãî îòñòàèâàåòå.<p/>"
            break
        default:
            document.getElementById('selected_radio').innerHTML=""

                }
                                                }
    for (j=0;j<document.f1.color2.length;j++) {
    if (document.f1.color2[j].checked) 
    switch (j) {
        case 0:
            document.getElementById('selected_radio').innerHTML="Âû ñåíòèìåíòàëüíû è óÿçâèìû. \
                                                                            Èíîãäà æàëååòå îá \
                                                                    óïóùåííûõ âîçìîæíîñòÿõ.<p/>"                        
            break
        default:
            document.getElementById('selected_radio').innerHTML=""

                }
                                                }
answer1=document.f1.color[i];
answer2=document.f1.color2[j];
if(answer1==answer2)
{
document.getElementById('selected_radio').innerHTML="Îïðåäåëèòåñü, \
                                ïîæàëóñòà, â ñâîåé ëþáâè ê öâåòó!";
}
else {document.getElementById('selected_radio').innerHTML="ok"}
}

Автор: vitalina 30.11.2007, 16:33
Если же твой использовать скрипт, то непонятно, куда девать switch

Автор: vitalina 30.11.2007, 17:13
Окончательное решение:

Код

<META NAME="keywords" 
 CONTENT="цвет, человек, влияние, значение">
<link rel="stylesheet" type="text/css" href="css.css">
<script>
<!--

function test()
{

    var text='';
    var a=document.getElementsByName('bttn1');
    var b=document.getElementsByName('bttn2');
var  answer1='';
var  answer2='';
    for(var i=0;i<a.length;i++)
    {
        if(a[i].checked)
        {
answer1=a[i].value;
        switch(i)
                    {
        case 0: text+=""; 
        case 1: text+="";
        case 2: text+="";
         default: ""}
        }
    }
        for(var j=0;j<b.length;j++)
        {
            if(b[j].checked)
            {
answer2=b[j].value;
        switch(j)
                    {
        case 0: text+=""; 
        case 1: text+="";
        case 2: text+="";
         default: ""}
            }
        }
if(answer1==answer2)
{
alert("Чувак! Определись что ли!");
}
else
{
    document.getElementById('diff4ik').innerHTML=text;
}
}

//-->
</script>
</head>
<body topmargin="0" leftmargin="5">
<table width="100%">
<tr><td><h2>Ваш характер:</h2></td></tr>
<td>
Люблю <br/>
<form>

<input type="radio" name="bttn1" value="Красный">Красный<br />
<input type="radio" name="bttn1" value="Голубой">Голубой<br />
<input type="radio" name="bttn1" value="Зелёный" >Зелёный<br /><br>
</td>
<td>

Ненавижу <br/>
<input type="radio" name="bttn2" value="Красный">Красный<br />
<input type="radio" name="bttn2" value="Голубой">Голубой<br />
<input type="radio" name="bttn2" value="Зелёный" >Зелёный<br /><br>
</td>
<td>
<input type="button" value="Ваш характер" onClick="test()">
</form>



</td>
</tr></table>
<div id="diff4ik"></div>
</body>
</html>




Автор: Castro 30.11.2007, 19:21
vitalina, switch  можно использовать если есть много вариантов выбора smile

Автор: vitalina 30.11.2007, 21:20
Так и есть много вариантов выбора. Цветов несколько и к каждому цвету существует своё описание!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)