您好,感谢您花时间回答我的问题。
我需要在验证引擎中创建一个验证规则,不允许值为 0。(意味着必须至少选择一个元素)。我有一个选择元素,默认值(请选择一个项目)的值为 0,因为它不是必需的。但是,一旦选中了一个复选框,我就需要将其设为必需。我无法添加类 'validate[required]' 因为 0 是有效值。所以我的问题是如何制定一个不允许将 0 值传递给控制器的自定义规则。
再次感谢
您好,感谢您花时间回答我的问题。
我需要在验证引擎中创建一个验证规则,不允许值为 0。(意味着必须至少选择一个元素)。我有一个选择元素,默认值(请选择一个项目)的值为 0,因为它不是必需的。但是,一旦选中了一个复选框,我就需要将其设为必需。我无法添加类 'validate[required]' 因为 0 是有效值。所以我的问题是如何制定一个不允许将 0 值传递给控制器的自定义规则。
再次感谢
我认为不需要自定义验证。您可以在选中复选框时在 jquery 的帮助下添加必需的属性,并在未选中时删除此属性(并在准备好首次加载的文档上检查它)。例如:
$('#myCheckBox').click(function () {
if ($(this).is(':checked')) {
$('#myDropDown').removeAttr('required');
}
else {
$('#myDropDown').attr('required', true);
}
});
但在这种情况下,您的<option>
值应该为空。<option value>Please select an item</option>
(据我所知,这是下拉列表的常见行为)。之后 jquery 验证插件将自动验证所需的属性。
编辑
好吧,如果你绝对应该使用自定义验证,你可以这样做:
1)添加您的验证方法(例如在准备好的文档上)
$.validator.addMethod("checkIfNotZero", function (value, element) {
return this.optional(element) || ($('#checkbox').is(':checked')&&value!=0);
}, "Please, select value");
$.validator.addClassRules("mySpecificClass", { checkIfNotZero: true });
2)标记你的下拉列表class="mySpecificClass"
3)并检查是否$('#myDropDown').valid()
有必要(或例如调用$(form).validate()
onSubmit 事件处理程序)。
我想就是这样。希望它会有所帮助。