jQuery.Validate条件validationRadioButton和DropDownList

我正在尝试设置一些validation,这样如果选中“是”单选按钮,则需要validation另一个控件,即下拉列表,以确保它未设置为列表中的默认第一个条目“请选择…“。

我尝试了很多组合,但还没能让它发挥作用。 validation消息显示是否选中了复选框。

这是一些代码!

这是我用来validation下拉列表的自定义方法。 (这适用于简单的DDLvalidation)

$.validator.addMethod( "selectNone", function(value, element) { return this.optional(element) || element.value != "Please Select..."; }, "Please select an option." ); 

要根据复选框进行validation,我已在表单中添加了规则

 $(document).ready(function() { var validator = $("#BuildingsCoverForm").validate({ rules: { NCBYears: { selectNone: function(element) { return $("*[name='PreviousInsurance']")[0].checked; } } }, messages: { NCBYears: { selectNone: "This field is required" } } }); }); 

这是控件。

 

任何想法将非常感谢。

非常感谢

只要第一个下拉列表选项具有空值( ),以下规则就可以使用:

 rules: { NCBYears: { required: function(element) { return $("input:radio[name='PreviousInsurance']:checked").val() == 'yes'; } } } 

来自: http : //docs.jquery.com/Plugins/Validation/Methods/required#dependency-expression

ScottE是对的。 我有一个从数据库填充的下拉列表,我只是在列表的最顶部附加了一个项目,并给它一个值“”。 validation输入时,只需对下拉列表进行validation为空。 如果列表永远不会更改,您也可以对列表进行硬编码,并使用空白值将项目添加到顶部,例如下面的示例。

 _example.Add(new SelectListItem { Text = "Select Example", Value = ""}); 

这不适用于当前版本的Validate.js(v 1.7)

我也能certificate这个概念不起作用:

 rules: { xyz: { required: function(element) { return true; } } } 

这也失败了。