jQueryvalidation选择列表的问题
我已经看到了大量关于如何在选择列表中使用jQuery Validation的示例 – 我正在尝试实现一个,但它对我来说不起作用。 我对这个插件一般都很陌生,我对我做错了什么感到非常困惑。
预期的行为是它不应validation用户是否已将选择菜单保留为“默认”。 他们必须做出选择。
我首先连接新的validation器方法。
使用Javascript
(function($) { $.validator.addMethod('mustbe', function(value, element, params) { var testValue = params['propertyvalue']; var condition = params['condition']; if ((condition == '0') && (value != testValue)) return true; if ((condition == '1') && (value == testValue)) return true; return false; }); })(jQuery); $(document).ready(function() { $("#form1").validate(); $('#form1').submit(function() { alert($('#form1').valid()); }); });
然后我通过将元数据添加到实际HTML来进行跟进。
HTML
它只是拒绝validation。 这里也是一个小提琴的链接:
的jsfiddle
你应该告诉你正在使用ASP.NET MVC。 它没有用,但人们会停止询问自定义属性名称。
我重新设计了您的代码以使用value default和data-val属性。 这是一个代码示例:
$(document).ready(function() { $.validator.addMethod("valueNotEquals", function(value, element, arg){ return arg != value; }, ""); $("#form1").validate({ rules: { select_list : {valueNotEquals: $('#select_list').attr('data-val-mustbe-propertyvalue')}, }, messages: { select_list : { valueNotEquals: $('#select_list').attr('data-val-required') } }, submitHandler: function(form) { alert($('#form1').valid()); form.submit(); } }); });
编辑:
这是一个jsFiddle示例: http : //jsfiddle.net/Gajotres/ekPpS/
这是一个没有ASP.NET MVC属性的版本:
$(document).ready(function() { $.validator.addMethod("valueNotEquals", function(value, element, arg){ return arg != value; }, ""); $("#form1").validate({ rules: { select_list : {valueNotEquals: "default"}, }, messages: { select_list : { valueNotEquals: "You must select a value" } }, submitHandler: function(form) { alert($('#form1').valid()); form.submit(); } }); });
简单的方法是在默认选项中使用value=''
,并指定select
是必需的:
所以巴马尔的答案部分正确但没有得到很好的解释。
我做的更改是为了让这个更新的小提琴起作用:
将name =“select_list”添加到select元素本身,以便为jquery.validate提供它想要查找的内容
修改了javascriptvalidation调用:
$("#form1").validate({ rules: { select_list: { required: true, number: true } }, submitHandler: function(form) { alert($('#form1').valid()); form.submit(); } });