我正在尝试使用jQuery Validate插件来验证下拉列表.它正确地验证了我的表格的其余部分.但它不适用于下拉列表.
这是我的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 name="html_url" id="html_url"> <option value="none">Select One...</option> ... </select>
解决方法
如果你只想要一个select元素,你就不会使用depends:因为它不依赖于另一个元素.在您的使用中,depends属性只是切换所需的规则.这里的问题不是必需的规则……它不需要切换.问题是,当所有选项都包含值时,所需的规则将不起作用,因为始终满足所需的要求.
只需使用value =“”作为默认选项,然后像任何其他元素一样设置规则.
<option value="">Select One...</option>
HTML:
<form id="campaignForm"> <select name="html_url" id="html_url"> <option value="">Select One...</option> <option value="one">ONE</option> <option value="two">TWO</option> </select> <input type="submit" /> </form>
jQuery的:
$(document).ready(function() { $('#campaignForm').validate({ rules: { html_url: { required: true } },messages: { html_url: { required: 'Please select a template' } } }); });