Javascript.RU

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

Тест с checkbox
Задача была в том что бы написать тест с checkbox с несколькими вариантами овтетов , но как я не старалса этот код выбирает лиш 1 правильный ответ,тоесть несколько правильных вариантов в этом тесте быть неможет.Вот набросал код,подскажите что нужно исправить что-бы можно было ставить несколько правильных ответов а не один.
<html>

<head>

<SCRIPT LANGUAGE="JavaScript">
function checkForm() {
            var checkbox = document.getElementsByTagName('input');
            var ansver = false;
            for(var i=0;i!=checkbox.length;i++){
                if (checkbox[i].type == 'checkbox' && checkbox[i].checked)
                    ansver = checkbox[i].name == 'zara';
                   // ansver = checkbox[i].name == 'sokg';
            }
            if (ansver) {
                document.test.s1.
value="otvet pravilniy ";
                return true;
            } else {
               document.test.s1.
value="otvet ne veren ";
                return false;
            }
        }
</script>

</head>
<body>
<FORM name=test>
    <b>v koko?</b>
    <br><input type="checkbox" name="zara" value="yes">? kozel
    <input type="checkbox" name="sokg" value="yes">? orel
    <br><input type="checkbox" name="jas" value="yes">shenok
    <br><input type="checkbox" name="glu" value="yes">kot
    
       

<P><TEXTAREA name=s1 rows=4 cols=50> </TEXTAREA> </P><input type="button" name="t1" value="podtcerdit" onClick="checkForm();">
<INPUT type=reset value="Сбросить ответы"> 
</FORM>

</body>

</html>
Ответить с цитированием
  #2 (permalink)  
Старый 03.03.2013, 07:09
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

<!DOCTYPE html>
<html> 
<head>
<script>
// правильные ответы - первый и третий
var answer = {1:true, 3:true};
function checkAnswer() {
    // считаем что ответы правильные
    var error = false;
    // чекбоксы
    var inputs = document.getElementsByTagName('input');
    for (var i = 0; i < inputs.length; i++) {
        // галка
        var checked = inputs[i].checked;
        // является ли вариант правильным
        var right = answer[i+1] == true;
        // если отметка не является правильной
        if (checked !== right) {
            error = true;
            // дальше можно не проверять
            break;
        }
    }
    var output = document.getElementById('output');
    output.value = error ? 'Ошибка!!!' : 'Зачот!!!';
    // предотвращаем отправку формы
    return false;
}
</script>
</head>
<body>
<form onsubmit="return checkAnswer()">
    <h4>Вопрос?</h4>
    <p><label><input type="checkbox">Вариант 1*</label></p>
    <p><label><input type="checkbox">Вариант 2</label></p>
    <p><label><input type="checkbox">Вариант 3*</label></p>
    <p><button type="submit">Готово</button> <button type="reset">Сбросить ответы</button></p>
    <p><textarea id="output" readonly></textarea></p>
</form>
</body>
</html>

Последний раз редактировалось danik.js, 03.03.2013 в 08:16.
Ответить с цитированием
  #3 (permalink)  
Старый 03.03.2013, 08:04
Профессор
Отправить личное сообщение для Vasy Посмотреть профиль Найти все сообщения от Vasy
 
Регистрация: 09.02.2013
Сообщений: 165

var right = answer.indexOf(i + 1) !== -1;

Почему оно гвоорит мне что данный обьект не поддерживает этод метод?

Нет спасибо большое оно в браузере все работает,но ругаетса в компиляторе.

И возможно же комбинировать в одном тесте сразу checkbox and radio?

Последний раз редактировалось Vasy, 03.03.2013 в 08:13.
Ответить с цитированием
  #4 (permalink)  
Старый 03.03.2013, 08:16
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Потому что вы сидите на осле восьмой версии. Он очень дряхлый, глупый и без пендаля не умеет indexOf. Ну ничего, я поправил код, теперь даж ваша кляча его поймет.
Ответить с цитированием
  #5 (permalink)  
Старый 03.03.2013, 08:26
Профессор
Отправить личное сообщение для Vasy Посмотреть профиль Найти все сообщения от Vasy
 
Регистрация: 09.02.2013
Сообщений: 165

Сообщение от danik.js Посмотреть сообщение
Потому что вы сидите на осле восьмой версии. Он очень дряхлый, глупый и без пендаля не умеет indexOf. Ну ничего, я поправил код, теперь даж ваша кляча его поймет.
спасибо вам огромное за полное обьяснение.
Ответить с цитированием
  #6 (permalink)  
Старый 03.03.2013, 08:42
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

indexOf - часть стандартна EcmaScript 5. IE8 из этого стандарта ничего почти не поддерживает. Можно подключить библиотеку es5-shim.js , она добавляет поддержку недостающих методов.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
checkbox = checkbox Слейп jQuery 2 30.01.2013 15:24
Не могу получить состояние checkbox-а POMAH-UST Элементы интерфейса 2 08.10.2012 07:43
jqgrid tree and checkbox gaz2003 jQuery 0 17.12.2011 15:59
Создать тест с вариантами ответов Anya Общие вопросы Javascript 9 16.12.2011 14:06
Функция disable для нескольких checkbox allforweb Элементы интерфейса 4 19.12.2010 17:51