掩码如果超过x个字符

时间:2016-11-13 02:53:33

标签: javascript html

我正在使用一个屏蔽插件(http://digitalbush.com/projects/masked-input-plugin/)它可以工作,但是我试图让它只在文本框中有5个以上的字符时才能工作。每当我点击第6个字符时,它就会清除文本框并且不再接受输入。

JS:

  <script>
  function convert(){
    if (l.length > 5){
        $("#q").mask('(999) 999-9999');
    }
  }
  </script>

HTML:

<form action="search.php" method="GET">
<input type="tel" class="form-control" name="q" id="q" placeholder="Phone/Order Number" onkeyup="convert()"><br>
<button type="submit" class="btn btn-default">Search</button>
</form>

如果有人能帮助我,那就太好了。 :d

2 个答案:

答案 0 :(得分:3)

它会清除文本框,因为当您应用蒙版时,插件会清除输入。您可以通过传递autoclear选项并将其设置为false来解决此问题。它还会继续尝试应用掩码,因此您必须删除事件侦听器。所以抛弃了内联事件处理程序,这无论如何都是做事件处理程序的坏方法: - )

这样的事情会起作用:

$('#q').on('keyup', function() {
    var $el = $(this);
    var val = $el.val();
    if (val.length > 5){
        $el.mask('(999) 999-9999', {
            autoclear: false,
            placeholder: ''
        });
    }
});

请注意,我还将placeholder设置为空字符串,否则当应用蒙版时,光标将设置为蒙版占位符的末尾,您必须将插入符号移回几个空格

答案 1 :(得分:-1)

这将检测Backspace并将其从电话号码掩码恢复为普通掩码

Parker Pens