Я пытаюсь выяснить, как проверить элемент формы с помощью комбинации радиовходов и ввода текста:
<label>Question?</label>
<input type="radio" class="mandatory" name="questions[1][]" value="1" />answer 1<br/>
<input type="radio" class="mandatory" name="questions[1][]" value="2" />answer 2<br/>
<input class="ignore" type="radio" id="questions[1][]" />Other (please specify)<br/>
<input class="optional mandatory" type="text" name="questions[1][]" value="" />
Я выяснил, как заставить форму вести себя так, как ожидается(выберите и отмените выбор) с помощью следующего кода:
$("input.optional").focus(function () {
var this_name = $(this).attr("name");
$("input:radio").filter(function() {return $(this).attr('name') == this_name; }).attr('checked', false);
$("input").filter(function() {return $(this).attr('id') == this_name; }).attr('checked', true);
});
$(':radio').click(function () {
var this_name = $(this).attr("name");
$("input").filter(function() {return $(this).attr('id') == this_name; }).attr('checked', false);
$("input.optional").filter(function() {return $(this).attr('name') == this_name; }).val('');
});
Я надеялся, что смогу использовать класс «обязательный» для проверки комбинации радио и текстового ввода:
$("form .manditory").each(function () {
$(this).rules("add", {required: true});
});
Ноэто не работает, как ожидалось.С выбранным радио (id = "questions [1] []") и текстовым вводом, содержащим контент, элемент формы по-прежнему помечается как недействительный.
Предложения ... может быть, лучший подход?
Заранее спасибо.
ОБНОВЛЕНИЕ
Извините, я должен был уточнить, что я использую плагин проверки:
$("form").validate({ ... });