jQuery validate - пользователь должен выбрать радио YES (не нет), чтобы продолжить - PullRequest
5 голосов
/ 13 октября 2011

Я хотел бы настроить правило проверки jQuery, чтобы требовать проверки ДА (не нет) для проверки / отправки формы. Пользователь должен принять условия. Если пользователь выберет «нет», он получит сообщение об ошибке, а форма не будет проверена. Как правильно сделать это с помощью плагина jquery validate?

<form id="myForm">
<input type="radio" name="terms" id="terms1" value="Yes!" class="required" title="Must accept terms to continue" /> Yes
<input type="radio" name="terms" id="terms2" value="No" class="required" title="Must accept terms to continue" /> No
</form>

$("#myForm").validate({ 

/*
Insert your awesome jquery validation code here. Free beer to whoever answers the question!
*/

}); 

Вот рабочий пример: http://jsfiddle.net/ThcS8/1/

Престижность любому, кто может предоставить решение или даже лучший пример! Проголосуйте, если вы ищете такое же решение, чтобы оно привлекло внимание. Спасибо всем!

Пожалуйста, проголосуйте за ваше любимое решение!

Ответы [ 4 ]

11 голосов
/ 10 ноября 2011

У меня тоже была эта проблема, и я пробовал разные вещи, включая решения, упомянутые выше. В конце я написал собственный метод валидатора для проверки требуемого значения в переключателе:

jQuery.validator.addMethod("requiredRadioValue", function(value, element, params) { 
    var selectedValue = $('input:radio[name=' + element.name + ']:checked').val(); 
    return (typeof(params) == 'array') ? (params.indexOf(selectedValue) != -1) : selectedValue == params;
}, "You must select the required option."); 

Метод используется, например,

signedcif: { requiredRadioValue: 'yes' }

разрешенные опции могут быть массивом или одним значением.

Надеюсь, это поможет, я надеялся, что это был не самый простой способ сделать это, поэтому любые альтернативы были с благодарностью приняты!

2 голосов
/ 13 октября 2011

Вы должны удалить требуемое из радио без ввода, а затем просто сделать

$("form").validate(); 

, это инициализирует проверку jquery.Он увидит, что требуется выбрать «да», и не позволит форме отправиться до тех пор, пока она не станет.

1 голос
/ 12 марта 2012

Предполагая, что флажок имеет класс 'required' и имеет имя 'acceptForm', вот что может работать:

   jQuery("#regForm").validate({
      debug: true,
      rules: {
        agreeForm: "required",
      },
      messages: {
        agreeForm: "Please accept our Terms and Conditions.",
      }
    });
1 голос
/ 13 октября 2011

изменить значение с true и false на 1 и 0 соответственно.и добавить правило для

$('form').validate({
rules:{
    terms: {min:1}
},
messages:{
    terms: {min:'you must accept terms to move on.'}
}
});
...