我有一个文本框,必须有一个MIN字符数和一个MAX字符数。在允许用户提交表单之前,使用jQuery确保输入在范围内(同时向用户显示状态消息)的最佳方法是什么?
更新:以下代码在某种程度上有效,但是在删除文本时遇到问题。由于它使用'keypress'来捕获文本框中的事件,因此当按下退格键时,'length'变量会错误地增加。似乎问题是文本的长度是在事实之前检索,即按键将始终导致之前的长度加上1.这是什么方法?< / p>
更新:我认为我使用keyup函数代替keypress解决了上一个问题
答案 0 :(得分:1)
如果这是您应用中唯一的客户端验证(也总是在服务器上验证!)那么它看起来像这样:
$("#your_textbox").keypress(function() {
var length = this.value.length;
if(length >= MIN && length <= MAX) {
$("#your_submit").removeAttr("disabled");
$("#your_validation_div").hide();
} else {
$("#your_submit").attr("disabled", "disabled");
$("#your_validation_div").show();
}
});
如果您需要在应用程序中进行大量验证,可能需要考虑validation plugin。
<input type='text' maxlength="30" />