我对表单使用jquery验证,我需要为输入的“ 6或13”设置确切的长度。
我试图捕获输入的长度并手动显示错误,问题是,如果输入无效,则我的手动插入错误和jquery验证程序错误会显示在一行中。然后,我尝试清空keypress
和输入change
上的自定义错误,但是如果我单击屏幕或使用其他操作,它将隐藏我的自定义错误。
这是我的代码:
jQuery.validator.setDefaults({
debug: true,
success: "valid"
});
$().ready(function() {
$("#My_Form_ID").validate({
rules: {
anyID: {
required: true,
number: true,
minlength: 6,
maxlength: 13
}
},
messages: {
anyID: {
required: "Some text",
minlength: "Some text"
}
}
});
});
<input type="text" id="anyID" maxlength="13">
答案 0 :(得分:1)
您可以像下面的示例一样添加自定义验证方法。
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/jquery.validate.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/additional-methods.min.js"></script>
<link rel="stylesheet" href="https://jqueryvalidation.org/files/demo/site-demos.css">
</head>
<body>
<form id="myform">
<input type="text" id="field" name="field">
<br>
<input type="submit" value="submit">
</form>
<script>
jQuery.validator.setDefaults({
debug: true,
success: "valid"
});
jQuery.validator.addMethod("len6or13", function(element) {
return element.length==6 || element.length==13 ? true : false;
}, jQuery.validator.format("Input data must be 6 or 13 characters long"));
$( "#myform" ).validate({
rules: {
field: {
required: true,
number: true,
len6or13: true
}
}
});
</script>
</body>
</html>
否则,您可以简单地通过指定字段选择器来忽略此字段,并自行处理该字段,如下所示:
$("#myform").validate({
ignore: ".ignore"
});