Форма отправки HTML javascript с радио

Итак, у меня есть форма, похожая на викторину. Он содержит вопросы и ответы. Мне нужна форма, чтобы не было радиопроверки на готовом документе. Я достиг этого с помощью:

$(document).ready(function(){
 $('input[type="radio"]').prop('checked', false)
});

(на момент комментария) Теперь мне нужно, чтобы форма отправлялась только в том случае, если пользователь выбирает ОДИН ответ НА КАЖДЫЙ вопрос. Если вопрос остается с отметкой НЕТ ответа, должно быть окно предупреждения, и форма не должна быть отправлена.

Форма выглядит так: jsFiddle конечно, она генерируется PHP на стороне сервера, но это пример того, как это выглядит после генерации. Кроме того, функция Java, которую я пробовал, проверяет только ОДНУ радиостанцию ​​из всех радиостанций по всем вопросам. Мне нужно проверить КАЖДЫЙ вопрос для проверенных радиостанций

Как я могу этого добиться?


person user1137313    schedule 19.03.2014    source источник
comment
Заголовок говорит о чекбоксах. Это разные вещи.   -  person GolezTrol    schedule 20.03.2014
comment
Нет такой вещи, как .radio()   -  person Diodeus - James MacFarlane    schedule 20.03.2014
comment
Диодей: ‹тип входа=радио... Как вы это называете?   -  person user1137313    schedule 20.03.2014
comment
@user1137313 user1137313 radio - это тип для input, в jQuery есть функции для управления элементами DOM, но нет функции с именем radio, за исключением случаев, когда вы используете плагин. Правильный способ снять отметку со всех радио - $('input[type="radio"]').prop('checked', false)   -  person L105    schedule 20.03.2014
comment
В порядке. Давайте предположим, что это не проблема, поскольку, поскольку я генерирую в PHP форму и радиокнопки, я могу просто не устанавливать для каких-либо радиокнопок отметку. Моя проблема в том, что мне нужна функция, чтобы проверить, есть ли проверенный ответ на все вопросы в форме. Количество вопросов варьируется, также может варьироваться количество ответов на вопрос. Но пример того, как это выглядит, можно увидеть на скрипке в теле вопроса.   -  person user1137313    schedule 20.03.2014


Ответы (2)


Я внес некоторые изменения в jsfiddle http://jsfiddle.net/eVLhD/3/.

В HTML-коде я заключил каждый вопрос в div: <div class="question"> </div>

Затем в функции отправки я делаю: для каждого вопроса проверяю, есть ли проверенная опция. Если его нет, остановите отправку, оповещение и остановите цикл.

function atleast_onecheckbox(e) {
    var error = 0, i = 1;
    $('div.question').each(function() {
        if ($(this).find(':checked').length === 0) {
            e.preventDefault();
            alert('no way you submit it without checking a box in question ' + i);
            error++;
            return false;
        }
        i++;
    });
    return error === 0;
}      
person progysm    schedule 19.03.2014
comment
Потрясающий. Как раз то, что я искал. Большое тебе спасибо - person user1137313; 20.03.2014

Если радио является частью одной и той же коллекции (для каждого вопроса), то пользователь не должен иметь возможности выбрать более одного. Другое дело, вопросы фиксированные или они динамические? Я имею в виду, у вас всегда одинаковое количество вопросов или это количество может варьироваться?

person Oscar Valdez Esquea    schedule 19.03.2014
comment
Как я сказал в своем предыдущем комментарии. Количество вопросов варьируется, также ответы могут варьироваться от вопроса к вопросу. Пожалуйста, проверьте пример в jsfiddle в моем теле вопроса. Имейте в виду, что иногда форма содержит 3 вопроса, иногда 7... и так далее. Это динамическая форма - person user1137313; 20.03.2014