【问题标题】:client-side text-box character limit validation using jQuery?使用jQuery的客户端文本框字符限制验证?
【发布时间】:2009-08-20 03:06:05
【问题描述】:

我有一个文本框,它必须包含 MIN 个字符以及 MAX 个字符。在允许用户提交表单之前,使用 jQuery 确保输入在范围内(同时向用户显示状态消息)的最佳方法是什么?

更新:下面的代码在某种程度上可以工作,但是我在删除文本时遇到了问题。因为它使用'keypress'来捕捉文本框中的事件,所以'length'变量在点击退格键时会错误地增加。似乎问题在于文本的长度是在事实发生之前检索到的,即按键总是会导致之前的长度加1。解决这个问题的正确方法是什么?

更新:我想我通过使用 keyup 功能而不是 keypress 解决了上一个问题

【问题讨论】:

    标签: javascript jquery validation


    【解决方案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

    设置maxlength attribute:

    <input type='text' maxlength="30" />
    

    【讨论】:

    • change() 函数似乎只有在我单击文本框时才会触发;在输入文本框中的每个新字符后,我怎样才能让它触发?谢谢
    • 感谢更新...最后一件事 - 一旦长度等于 MAX,如何禁用文本框以使用户无法输入更多字符?感谢您的帮助!
    • 我不建议在按键上验证最小长度,我建议在模糊上验证它们(但继续在按键上验证最大长度)假设最小长度为 3 个字符。该人想输入“abc”。一旦他们按下“a”,就会显示一个错误,因为文本字段中只有 1 个字符。当他们按“b”时,错误仍然存​​在。当他们按“c”时,错误消息将消失。在用户输入有效输入的过程中显示这些“错误”错误消息令人困惑。
    • @es111:您只需要在输入类型文本元素上设置最大长度即可。我将再次编辑代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-05
    相关资源
    最近更新 更多