我想知道是否有一个插件会为输入设置掩码,具体取决于我已在那里输入。
例如,如果我将输入的掩码设置为0-4的数字,然后将“1”写入输入,我希望能够只写“0”,“2”,“3”,“4”。 我已经尝试过以下掩码:
http://digitalbush.com/projects/masked-input-plugin/
但是我只能实现这一点,写入字符后整个输入清零,或者插入符号输入后面,或者我无法写入任何内容。 这是我尝试实现我想要的目标:
jQuery.mask.definitions['x'] = '[123456789]';
jQuery('#inputLabel').mask("x, x, x, x, x, x, x");
如果我在输入中输入内容,我试过这个: 再设一次面具
jQuery.mask.definitions['x'] = returnDistinctTab(); //returnDistinctTab return tab without character which I have already input to the input.
var text = jQuery("#inputLabel").val();
text.replace('_', 'x');
jQuery('#inputLabel').mask('text');
如果有人知道我做错了什么,或者知道哪种面具适合我的情况,我将非常感激!!
答案 0 :(得分:2)
您可以使用oninput
event,并编写一个简单的函数来强制列表中的唯一值:
<script>
function verifyInput(txt, mask) {
var res = '';
for (var i = 0; i < txt.length; i++) {
var char = parseInt( txt[i] );
if (mask.indexOf(char) > -1 && res.indexOf(char) === -1)
res += char;
}
return res;
}
</script>
<input type="text" id="unique-numbers" oninput="this.value=verifyInput(this.value, [0, 1, 2, 4])" />
它可能比jQuery插件更快,也更容易维护(你不仅限于任何东西)。