jQuery Validate Plugin:如何validation下拉列表

我正在尝试使用jQuery Validate插件来validation下拉列表。 它正确validation了我的表格的其余部分。 但它不适用于下拉列表。

这是我的jQuery:

$('#campaignForm').validate({ rules: { campaign_name: { required: true }, html_url: { required: { depends: function(element) { return $('#html_url').val() == 'none'; } } } }, messages: { campaign_name: 'Please enter a campaign name', html_url: 'Please select a template' } }); 

这是我的HTML:

  Select One... ...  

我究竟做错了什么? 我的变量名称是否以某种方式发生碰撞。 广告系列名称规则运行正常。

如果你只想要一个select元素,你就不会使用depends:因为它不依赖于另一个元素 。 在您的使用中, depends属性只是切换required规则。 这里的问题不是required规则……它不需要切换。 问题是当所有选项都已包含valuerequired规则将不起作用,因为始终满足required

只需使用value=""作为默认选项,然后像任何其他元素一样设置规则。

  

jsFiddle DEMO

HTML:

 

jQuery的:

 $(document).ready(function() { $('#campaignForm').validate({ rules: { html_url: { required: true } }, messages: { html_url: { required: 'Please select a template' } } }); });​ 

如果出于某种原因你不能像Spark所说的那样将值设置为空白,你可以添加自己的JQueryvalidation函数而不是默认的所需预设。

 $.validator.addMethod("aFunction", function(value, element) { if (value == "none") return false; else return true; }, "Please select a value"); $('#campaignForm').validate({ rules: { campaign_name: { required: true }, html_url: { aFunction: true } }, messages: { campaign_name: 'Please enter a campaign name', html_url: 'Please select a template' } });