使用jQuery验证插件验证单选按钮组

时间:2008-11-10 10:47:47

标签: jquery validation

如何使用jQuery验证插件对单选按钮组进行验证(应该选择一个单选按钮)?

8 个答案:

答案 0 :(得分:110)

对于更新版本的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

以上将需要在继续之前选择3个无线电选项中的至少一个,并选择“我的选项”名称。

Mahes的标签建议,顺便说一句,效果非常好!

答案 1 :(得分:23)

使用以下规则验证单选按钮组选择

myRadioGroupName : {required :true}

myRadioGroupName是您为name属性赋予的值

答案 2 :(得分:18)

您也可以使用:

<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 :(得分:3)

另一种验证方式是这样的。

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

我希望我的例子会帮助你

答案 4 :(得分:3)

根据布兰登的回答。但是,如果您使用的是使用不显眼验证的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>

答案 5 :(得分:3)

单选按钮的代码 -

<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>

答案 6 :(得分:2)

我遇到了同样的问题。只是为验证器编写自定义高亮显示和取消高亮显示功能。将此添加到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);
            }
        },

答案 7 :(得分:0)

将错误消息放在顶部。

   <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 -->