将输入限制为仅限某些字符适用于Chrome,但不适用于Firefox

时间:2015-12-23 11:08:33

标签: javascript jquery firefox

以下脚本旨在允许用户仅输入a-z中的小写字母,0-9和短划线-中的数字。这适用于Chrome,但在Firefox上,文本字段根本不允许任何输入。出了什么问题?

$('#slug_input').keypress(function(key) {
        return((key.keyCode >= 97 && key.keyCode <= 122) || (key.keyCode >= 48 && key.keyCode <= 57) || key.keyCode == 45 );
    });

2 个答案:

答案 0 :(得分:3)

$('#slug_input').keypress(function(key) {
    return((key.which >= 97 && key.which <= 122) || (key.which >= 48 && key.which <= 57) || key.which == 45 );
});

答案 1 :(得分:2)

Firefox不支持

event.keycode。使用event.which for firefox。检查以下代码,该代码仅允许使用字母数字和连字符。

&#13;
&#13;
$(function() {
  $('#slug_input').keypress(function(evt) {

    var keyID = (evt.charCode) ? evt.charCode : ((evt.which) ? evt.which : evt.keyCode);
    return ((keyID >= 97 && keyID <= 122) || (keyID >= 48 && keyID <= 57) || keyID == 45);

  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="slug_input">
&#13;
&#13;
&#13;

但正如tushar所建议的那样,我建议你使用Regex Matching。