我正在使用一个屏蔽插件(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
答案 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