Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.03.2013, 14:01
Профессор
Отправить личное сообщение для Vasy Посмотреть профиль Найти все сообщения от Vasy
 
Регистрация: 09.02.2013
Сообщений: 165

Тест с radiobutton
Есть код приведенный ниже,Проблема в том что правильным ответом может быть только 1 либо второй вариант ответа,и немогу понять почему 3 4 немогут быть правильными.Подскажите в чем я ошибся.Заранее спасибо
<html>
<head>




<SCRIPT language=JavaScript>




var res="11"
function check_me()

        {
	       var count=0
	       with(document.test)
	
                    {

                        if (!Q1[0].checked&&!Q1[1].checked&&!Q1[2].checked&&!Q1[3].checked) 
                              {count+=1};

		        if (!Q2[0].checked&&!Q2[1].checked&&!Q2[2].checked&&!Q2[3].checked) 
                              {count+=1};

		        if (count>0) 
                               {
                                      alert("Вы выполнили не все задания.Проверьте себя")
                               } 
		else answer()
                      }
          }

function control(k,f1,g1)

 
     {

	
            if (k==1&&f1.checked) return true;
	
            if (k==2&&g1.checked) return true;

            return false;
      }

function answer()
      {
  

	
           answ="";
	   with(document)
	        {
		
                        answ+=control(res.charAt(0),test.Q1[0],test.Q1[1],test.Q1[2],test.Q1[3])?"1":"0"
		
                        answ+=control(res.charAt(1),test.Q2[0],test.Q2[1],test.Q2[2],test.Q2[3])?"1":"0"
	
	                var nok=0;
	                var i,s;
	
                        for (i=0;i<answ.length;i++) 
                                 {
                                         nok+=answ.charAt(i)=="1"?1:0;
                                  }
                                                               
                                             if(nok==1) s='"неудовлитворительно"';
                  
                                             if(nok>1) s='"Удовлетворительно"';
	

	     document.test.s1.
             value="Количество правильных ответов "+nok+". Ваша Оценка "+s+". ";
	
                    with(document.test)
	                       {
		                          if (answ.charAt(0)=="1")  
                                                  {
                                                        T1.value=" +";
                                                   }
                                         else
                                                   {
                                                        T1.value=" -";
                                                    }
	
			                if (answ.charAt(1)=="1") 
                                                   {
                                                         T2.value=" +";
                                                    }
                                        else
                                                    {
                                                          T2.value=" -";
                                                     }


	                       }

               }
   }




</SCRIPT>
</HEAD>

<body>

<FORM name=test>
<CENTER><FONT face=Arial,Helvetica,sans-serif color=#000099>
<H3>ghj </H3></CENTER>
<OL>
  
<LI>
  <H4> <input type=text name=T1>Вопрос </H4>
<INPUT type=radio name=Q1 > 1 <BR>
<INPUT type=radio name=Q1 > 2 <BR>
<INPUT type=radio name=Q1 > 3 <BR>
<INPUT type=radio name=Q1 > 4 <BR><BR>

<LI>
  <H4><input type=text name=T2>Вопрос </H4>
<INPUT type=radio name=Q2 value=1 > Ответ 1 <BR>
<INPUT type=radio name=Q2 value=2 > Ответ 2 <BR>
<INPUT type=radio name=Q2 value=3 > Ответ 3 <BR>
<INPUT type=radio name=Q2 > 22 <BR><BR>

</LI></OL><BR>

<CENTER>
<P><TEXTAREA name=s1 rows=4 cols=50> </TEXTAREA> </P>
<INPUT onclick=answer() type=button value="Показать результат"> 
<INPUT type=reset value="Сбросить ответы"> </CENTER><BR>
</FORM>
</P>
</BODY>
</HTML>

Последний раз редактировалось Vasy, 05.03.2013 в 14:43.
Ответить с цитированием
  #2 (permalink)  
Старый 04.03.2013, 22:22
Профессор
Отправить личное сообщение для Vasy Посмотреть профиль Найти все сообщения от Vasy
 
Регистрация: 09.02.2013
Сообщений: 165

в чем беда подскажите
Ответить с цитированием
  #3 (permalink)  
Старый 05.03.2013, 14:06
Профессор
Отправить личное сообщение для Vasy Посмотреть профиль Найти все сообщения от Vasy
 
Регистрация: 09.02.2013
Сообщений: 165

люди
Ответить с цитированием
  #4 (permalink)  
Старый 05.03.2013, 14:21
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Пожалуйста, отформатируйте свой код!

[html run]
... ваш код...
[/html]
Ответить с цитированием
  #5 (permalink)  
Старый 05.03.2013, 14:24
Профессор
Отправить личное сообщение для Vasy Посмотреть профиль Найти все сообщения от Vasy
 
Регистрация: 09.02.2013
Сообщений: 165

Сообщение от danik.js Посмотреть сообщение
Пожалуйста, отформатируйте свой код!

[html run]
... ваш код...
[/html]
несовсем понял,что вы имеете ввиду но вроде отвередактил
Ответить с цитированием
  #6 (permalink)  
Старый 05.03.2013, 14:29
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Не вижу изменений. Должно получиться так:
<script>
    alert('Hello World!');
</script>

Еще расставьте отступы. Короче, сделайте код читабельным.
Ответить с цитированием
  #7 (permalink)  
Старый 05.03.2013, 14:42
Профессор
Отправить личное сообщение для Vasy Посмотреть профиль Найти все сообщения от Vasy
 
Регистрация: 09.02.2013
Сообщений: 165

незнаю смотрите
Ответить с цитированием
  #8 (permalink)  
Старый 05.03.2013, 15:12
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Как всегда, пока сам не сделаешь..
<!DOCTYPE html>
<script>
var res = "11"

function check_me()
{
    var count = 0
    with(document.test)
    {
        if (!Q1[0].checked && !Q1[1].checked && !Q1[2].checked && !Q1[3].checked) {
            count += 1
        };

        if (!Q2[0].checked && !Q2[1].checked && !Q2[2].checked && !Q2[3].checked) {
            count += 1
        };

        if (count > 0) {
            alert("Вы выполнили не все задания.Проверьте себя")
        } else answer()
    }
}

function control(k, f1, g1)
{
    if (k == 1 && f1.checked) return true;

    if (k == 2 && g1.checked) return true;

    return false;
}

function answer() {
    answ = "";
    with(document)
    {
        answ += control(res.charAt(0), test.Q1[0], test.Q1[1], test.Q1[2], test.Q1[3]) ? "1" : "0"

        answ += control(res.charAt(1), test.Q2[0], test.Q2[1], test.Q2[2], test.Q2[3]) ? "1" : "0"

        var nok = 0;
        var i, s;

        for (i = 0; i < answ.length; i++) {
            nok += answ.charAt(i) == "1" ? 1 : 0;
        }

        if (nok == 1) s = '"неудовлитворительно"';

        if (nok > 1) s = '"Удовлетворительно"';

        document.test.s1.
        value = "Количество правильных ответов " + nok + ". Ваша Оценка " + s + ". ";

        with(document.test)
        {
            if (answ.charAt(0) == "1") {
                T1.value = " +";
            } else {
                T1.value = " -";
            }

            if (answ.charAt(1) == "1") {
                T2.value = " +";
            } else {
                T2.value = " -";
            }

        }

    }
}
</script>
<form name=test>
    <ol>
		<li>
			<h4> <input type=text name=T1>Вопрос </h4>
			<input type=radio name=Q1> 1 <br />
			<input type=radio name=Q1> 2 <br />
			<input type=radio name=Q1> 3 <br />
			<input type=radio name=Q1> 4 <br />
		</li>
		<li>
			<h4><input type=text name=T2>Вопрос </h4>
			<input type=radio name=Q2 value=1 > Ответ 1 <br />
			<input type=radio name=Q2 value=2 > Ответ 2 <br />
			<input type=radio name=Q2 value=3 > Ответ 3 <br />
			<input type=radio name=Q2 > 22 <br />
		</li>
	</ol>
	<p><textarea name=s1 rows=4 cols=50> </textarea></p>
	<p>
		<button onclick=answer() type=button>Показать результат</button>
		<button type=reset>Сбросить ответы</button>
	</p>
</form>
Ответить с цитированием
  #9 (permalink)  
Старый 05.03.2013, 15:16
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Ну и говногодище... Пойду помою руки...
Ответить с цитированием
  #10 (permalink)  
Старый 05.03.2013, 15:24
Профессор
Отправить личное сообщение для Vasy Посмотреть профиль Найти все сообщения от Vasy
 
Регистрация: 09.02.2013
Сообщений: 165

Спасибо теперь буду знать как красиво оформлять код,Но как исправить эту байду что бы 3 4 тоже могли быть правильными овтетами?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать тест с вариантами ответов Anya Общие вопросы Javascript 9 16.12.2011 14:06
[Оптимизация] Тест написанный javascripts TBIKC Общие вопросы Javascript 3 18.05.2011 11:27
Тест на JS, отсчет времени... Галька Элементы интерфейса 4 27.01.2011 22:23
Тест с ветвлением Reiter Общие вопросы Javascript 11 08.12.2010 14:50
как правильно передвать имя radiobutton в функции boris2000 Элементы интерфейса 2 03.08.2010 21:16