在我的表单中,我使用maxlength
作为输入字段,我还使用jquery.validate.js来指示一些错误消息。
maxlength
,则只显示小弹出窗口。然而我实际上并不想要这些场景......
我需要的是一旦它到达maxlength
,它应该显示一条错误消息,它不应该允许用户输入超过40个字符。
我不想使用jquery自定义函数,比如计算on keyup
!
我尝试过使用以下代码:
<form id="myForm">
<input name="myName" required maxlength="40" />
</form>
我的jQuery代码如下:
$("#myForm").validate({
rules :{
myName :{
required :true,
maxlength:40
},
},
messages:{
maxlength:"You crossed a maximum limit"
}
});
答案 0 :(得分:0)
从input
元素中删除HTML 5属性。当您已经在.validate()
内声明了相同的规则时,您不需要它们。我认为自动HTML 5浏览器验证消息让您在对破坏的jQuery Validate进行故障排除时感到困惑。
使用messages
选项指定自定义消息时,必须还指定输入name
,类似于rules
选项格式。在messages
内,只有规则名称是可选的。换句话说,您可以在输入name
本身上放置自定义消息,它将自动应用于该输入的所有规则。但是,您不能像未完成的那样将自定义消息放置在未分配给输入的规则上。
否则,我的代码中没有问题......
DEMO:http://jsfiddle.net/a5vBU/
<强> HTML 强>:
<form id="myForm">
<input name="myName" />
</form>
<强>的jQuery 强>:
$(document).ready(function () {
$("#myForm").validate({
rules: {
myName: {
required: true,
maxlength: 40
} // <-- removed trailing comma
},
messages: {
myName: { // <-- need input name
maxlength: "You crossed a maximum limit"
}
}
});
});