如果有可能在JQuery keypress事件中仅允许输入框中的某些文本

时间:2018-09-04 13:29:06

标签: javascript jquery validation keypress

如果可以在keyPress事件的输入框中以相同的顺序允许特定的字符串。重要的是我只需要以相同的顺序允许。

示例:如果我需要允许“ NILL”,则用户必须以相同的顺序输入。如果用户输入“ NL”,则我们需要限制它们。

我尝试了以下操作:

$("input").keypress(function(e) {
    var chr = chr = e.key;
    if ("NILL".indexOf(chr) < 0 && e.which != 13)
        return false;
        console.log('allowed');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="foo" />

1 个答案:

答案 0 :(得分:1)

您可以将字符串转换为字符数组,然后检查每个索引是否与输入的键匹配

$(document).ready(function(){

var restriction = "NILL";
restriction = restriction.split(''); // transform to array of char
$("input").keypress(function(e) {
    var chr = e.key.toUpperCase();
    if(restriction[$(this).val().length] != chr){
    return false;
    }
});

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="foo" />