Проверка группы переключателей с помощью плагина проверки jQuery. - PullRequest
123 голосов
/ 10 ноября 2008

Как выполнить проверку для группы переключателей (должна быть выбрана одна переключатель) с помощью плагина проверки jQuery?

Ответы [ 8 ]

110 голосов
/ 28 июля 2010

В более новых выпусках jquery (я думаю, 1.3+) все, что вам нужно сделать, это настроить требуемый элемент радиостанции, а jquery позаботится обо всем остальном:

<input type="radio" name="myoptions" value="blue" class="required"> Blue<br />
<input type="radio" name="myoptions" value="red"> Red<br />
<input type="radio" name="myoptions" value="green"> Green

Приведенное выше требует, чтобы по крайней мере 1 из 3 опций радио с названием «мои опции» были выбраны перед продолжением.

Предложение от лейбла Mahes, кстати, прекрасно работает!

23 голосов
/ 04 декабря 2009

используйте следующее правило для проверки выбора группы переключателей

myRadioGroupName : {required :true}

myRadioGroupName - это значение, которое вы дали атрибуту имени

18 голосов
/ 22 августа 2010

Вы также можете использовать это:

<fieldset>
<input type="radio" name="myoptions[]" value="blue"> Blue<br />
<input type="radio" name="myoptions[]" value="red"> Red<br />
<input type="radio" name="myoptions[]" value="green"> Green<br />
<label for="myoptions[]" class="error" style="display:none;">Please choose one.</label>
</fieldset>

и просто добавьте это правило

rules: {
 'myoptions[]':{ required:true }
}

Упомяните, как добавить правила.

3 голосов
/ 01 апреля 2014

код для радиокнопки -

<div>
<span class="radio inline" style="margin-right: 10px;">@Html.RadioButton("Gender", "Female",false) Female</span>
<span class="radio inline" style="margin-right: 10px;">@Html.RadioButton("Gender", "Male",false) Male</span>                                                        
<div class='GenderValidation' style="color:#ee8929;"></div>    
</div> 

<input class="btn btn-primary" type="submit" value="Create" id="create"/>

и код jQuery-

<script>
    $(document).ready(function () {
        $('#create').click(function(){

            var gender=$('#Gender').val();
            if ($("#Gender:checked").length == 0){
                $('.GenderValidation').text("Gender is required.");
                return false;
            }
        });
    });
</script>
3 голосов
/ 08 ноября 2012

Согласно ответу Брэндона. Но если вы используете ASP.NET MVC, который использует ненавязчивую проверку, вы можете добавить атрибут data-val к ​​первому. Мне также нравится иметь ярлыки для каждой кнопки-переключателя для удобства использования.

<span class="field-validation-valid" data-valmsg-for="color" data-valmsg-replace="true"></span>
<p><input type="radio" name="color" id="red" value="R" data-val="true" data-val-required="Please choose one of these options:"/> <label for="red">Red</label></p>
<p><input type="radio" name="color" id="green" value="G"/> <label for="green">Green</label></p>
<p><input type="radio" name="color" id="blue" value="B"/> <label for="blue">Blue</label></p>
3 голосов
/ 13 сентября 2012

Другой способ проверить это так.

var $radio = $('input:radio[name="nameRadioButton"]');
$radio.addClass("validate[required]");

Надеюсь, мой пример вам поможет

2 голосов
/ 13 мая 2011

У меня была такая же проблема. Завершилось только написанием пользовательской функции выделения и отмены выделения для валидатора. Добавление этого к опциям validaton должно добавить класс ошибки к элементу и его соответствующую метку:

        'highlight': function (element, errorClass, validClass) {
            if($(element).attr('type') == 'radio'){
                $(element.form).find("input[type=radio]").each(function(which){
                    $(element.form).find("label[for=" + this.id + "]").addClass(errorClass);
                    $(this).addClass(errorClass);
                });
            } else {
                $(element.form).find("label[for=" + element.id + "]").addClass(errorClass);
                $(element).addClass(errorClass);
            }
        },
        'unhighlight': function (element, errorClass, validClass) {
            if($(element).attr('type') == 'radio'){
                $(element.form).find("input[type=radio]").each(function(which){
                    $(element.form).find("label[for=" + this.id + "]").removeClass(errorClass);
                    $(this).removeClass(errorClass);
                });
            }else {
                $(element.form).find("label[for=" + element.id + "]").removeClass(errorClass);
                $(element).removeClass(errorClass);
            }
        },
0 голосов
/ 01 мая 2019

Помещает сообщение об ошибке сверху.

   <style> 

 .radio-group{ 
      position:relative; margin-top:40px; 
 } 

 #myoptions-error{ 
     position:absolute; 
     top: -25px; 
  } 

 </style> 

 <div class="radio-group"> 
 <input type="radio" name="myoptions" value="blue" class="required"> Blue<br /> 
 <input type="radio" name="myoptions" value="red"> Red<br /> 
 <input type="radio" name="myoptions" value="green"> Green </div>
 </div><!-- end radio-group -->
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...