我已经创建了一个自定义验证,我想用它来比较2个选择框,但是附加方法没有解决不确定如何修复它? 这是jsfiddle:http://jsfiddle.net/ughCm/97/ 在选择价值的变化时,它不会触发“comaremodelyear”'方法,甚至不在.valid()。
这是代码
$.validator.addMethod("comparemodalyear", function(value, element, param) {
alert('h');
return true;
}, "From year must be greater!");
$(document).ready(function() {
$('#savebtn').click(function() {
var test = $("#experiment").valid();
});
});
html代码:
<form id="experiment" action="/" method="post">
<input type="text" required name="fine" />
<select comparemodalyear name="testingA">
<option value="1">Val1</option>
<option value="2">Val2</option>
</select>
<button id="savebtn" type="button">Save</button>
</form>
答案 0 :(得分:1)
您需要将其添加为类而不是属性
<select class="comparemodalyear" name="testingA">
<option value="1">Val1</option>
<option value="2">Val2</option>
</select>
然后
$.validator.addClassRules('comparemodalyear', {
comparemodalyear: true
});
演示:Fiddle
如果您不想将自定义值传递给规则,则无需addClassRules()
,因为addMethod()
会根据addClassRules()
对method.length < 3
进行内部调用method.length
条件,其中$.validator.addMethod("comparemodalyear", function (value, element) {
alert('h');
return true;
}, "From year must be greater!");
是验证方法的count of arguments
{{1}}
演示:Fiddle