我需要根据点击的提交按钮来验证某些字段,并且我有以下代码,它们运行正常。
(我知道已经存在'大于3'的方法,但我想检查一下你是否可以添加自定义方法)
<script type="text/javascript">
var _btnClicked = "";
$(document).ready(function() {
$.validator.addMethod('custom', function(value, element, param) { if (param) { return value > 3 } return true; });
$("#form1").validate({
rules: {
input1: { required: function(element) { return _btnClicked == 'div1'; } },
input2: { custom: function(element) { return _btnClicked == 'div2'; } } },
messages: {
input1: "Required",
input2: "Greater than three"
}
});
});
</script>
<form id="form1">
<div id="div1" class="div1">
<input id="input1" name="input1" type="text" class="div1"/>
<input id="btn1" name="btn1" type="submit" value="Form 1" class="div1" onclick="_btnClicked = 'div1'; if (!$('#form1').validate().form()) { return false; }" />
</div>
<div id="div2" class="div2">
<input id="input2" name="input2" type="text" class="div2"/>
<input id="input3" name="input3" type="text" class="div2"/>
<input id="btn2" name="btn2" type="submit" value="Form 2" class="div2" onclick="_btnClicked = 'div2'; if (!$('#form1').validate().form()) { return false; }" />
</div>
</form>
我的问题是,如果我想将第三个输入框限制为最大长度为3,该怎么办?
我无法添加此规则,因为它显然没有传递值3,因此它不知道最大长度是多少!
input3: { maxlength: function(element) { return _btnClicked == 'div2'; } }
有什么想法吗?
或者更好的方法来实现这个目标!?
答案 0 :(得分:0)
定义一个忽略类(例如&#34; .ignore&#34;),并在用户点击&#34;另一个&#34;的按钮。