jQuery只允许选中的字符按键功能

时间:2017-08-21 13:03:09

标签: javascript jquery

您好我尝试使用此代码来限制用户的输入。问题是我无法在输入框中使用我的返回键或键盘输入。我怎样才能解决我的问题。 我使用这段代码:

$("input").keypress( function(e) {
    var chr = String.fromCharCode(e.which);
    if ("bcdegkmnqupvxy36789".indexOf(chr) < 0)
        return false;
});

4 个答案:

答案 0 :(得分:2)

要实现您的需求,您只需在<p class="timeLabel">{{start_timestamp | date:'YYYY-MM-DD H:m:s z'}}</p>语句中添加另一个条件,该语句将检查Return键代码:if

13
$("input").keypress(function(e) {
  var chr = String.fromCharCode(e.which);
  if ("bcdegkmnqupvxy36789".indexOf(chr) < 0 && e.which != 13)
    return false;
   
  console.log('allowed');
});

答案 1 :(得分:0)

只需更新if条件以允许composer install --no-scripts (这是Enter键),如下所示:

e.which === 13
$("input").keypress( function(e) {
    var chr = String.fromCharCode(e.which);
    if ("bcdegkmnqupvxy36789".indexOf(chr) < 0 && e.which !== 13) {
        return false;
    }

    console.log( e.which, chr, 'allowed' );
});

答案 2 :(得分:0)

如果用户输入了一个字符而未点击其中一个非字符输入键(如tab,return / enter),则只想限制输入。

首先检查chr是否不是假y(例如空字符串):

$("input").keypress( function(e) {
    var chr = String.fromCharCode(e.which);
    //if chr is a non-character keycode (like 13) then you won't return false
    if (chr && "bcdegkmnqupvxy36789".indexOf(chr) < 0)
        return false;
});

答案 3 :(得分:0)

$("input").keypress( function(e) {
var chr = String.fromCharCode(e.which);
if ("bcdegkmnqupvxy36789".indexOf(chr) < 0 && e.which !=13 && e.which !=8) 
    return false;
});