JQuery阻止用户键入数字和符号,但允许使用字母和空格

时间:2014-10-23 06:51:54

标签: jquery

我需要一个jquery函数,它只允许文本框上的字母和空格,并阻止用户键入数字和符号。

我的代码正在运行,但文本框中允许使用这些符号。

HTML

<input id="inputTextBox" type="text" />

的jQuery

$(document).ready(function(){
    $("#inputTextBox").keypress(function(event){
        var inputValue = event.which;
        //if digits or not a space then don't let keypress work.
        if((inputValue > 47 && inputValue < 58) && (inputValue != 32)){
            event.preventDefault();
        }
    });
});

4 个答案:

答案 0 :(得分:2)

只需使用正则表达式/[^a-zA-Z\s]/来匹配任何不是字母或空格的内容。

$(document).ready(function() {
  $(document).on("input change paste", "input", function() {
    var newVal = $(this).val().replace(/[^a-zA-Z\s]/g, '');
    $(this).val(newVal);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" value="" placeholder="Letters and spaces only!" />

答案 1 :(得分:1)

这是仅允许数值的代码,它不允许使用字符(字母)和空格:

$('input').keypress(function( e ) {
if((e.which === 32) || (e.which  > 64 && e.which  < 91) || (e.which > 96 && e.which < 123))
    return false;
}); code here

答案 2 :(得分:0)

检查您要允许的字符:

$("#inputTextBox").keypress(function(event){
    var inputValue = event.which;
    //if digits or not a space then don't let keypress work.
    if((inputValue > 64 && inputValue < 91) // uppercase
       || (inputValue > 96 && inputValue < 123) // lowercase
       || inputValue == 32) { // space
        return;
    }
    event.preventDefault();
});

DEMO

答案 3 :(得分:0)

尝试使用正则表达式。 这个只允许空格和字母表。

它还会显示跨度错误。你需要用你喜欢的消息来做到这一点。如果你取消注释第7行。

&#13;
&#13;
<script type="text/javascript">
$(function () {
   $("#inputTextBox").keypress(function(event){
        var isValid = false;
        var regex = /^[a-zA-Z ]*$/;
        isValid = regex.test($("[id=inputTextBox]").val());
      //  $("#spnError").css("display", !isValid ? "block" : "none");
        return isValid;
    });
});
</script>
&#13;
&#13;
&#13;