如何在文本输入中修改此功能以接受空间

时间:2014-11-11 18:26:45

标签: jquery

我在输入文本上只有一个函数,它只接受字母,我如何修改它以允许空格,以便我可以在名字和姓氏之间留出空格

这是我的功能

Name : <input type="text" name="quantity" id="quantity"  />&nbsp;<span id="errmsg"></span>

$(document).ready(function () {

  $("#quantity").keypress(function (e) {

   if(e.which < 65 /* a */ || e.which > 122 /* z */ ) {
        e.preventDefault();
    }
   });
});

http://jsfiddle.net/HkEuf/3726/

4 个答案:

答案 0 :(得分:1)

试试这个。 :

$(document).ready(function () {

  $("#quantity").keypress(function (e) {

   if((e.which < 65 || e.which > 90) && (  e.which < 97 || e.which >122) &&  e.which != 32 )) {
        e.preventDefault();
    }
   });
});

答案 1 :(得分:0)

你还允许在那里使用一些非字母字符(例如94 == ^)。只是字母&amp;位:

$(document).ready(function () {

  $("#quantity").keypress(function (e) {

   if ((e.which == 32)                       || /* space */
       ((e.which >= 65) && (e.which <= 90))  || /* A-Z */
       ((e.which >= 97) && (e.which <= 122))    /* a-z */
      )
     return;
    
     e.preventDefault();
   });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="quantity" id="quantity"  />&nbsp;<span id="errmsg"></span>

答案 2 :(得分:0)

添加:

e.keyCode == 0 || e.keyCode == 32

要成功:

Name : <input type="text" name="quantity" id="quantity"  />&nbsp;<span id="errmsg"></span>

$(document).ready(function () {

  $("#quantity").keypress(function (e) {

   if(e.which < 65 /* a */ || e.which > 122 /* z */ ||
      e.keyCode != 0 || e.keyCode != 32) {
        e.preventDefault();
    }
   });
});

这些密钥代码表示不同浏览器中的空格,应该按您想要的方式工作。

答案 3 :(得分:0)

你可以让你的功能允许像这样的小字母和大写字母和空格:

Name : <input type="text" name="quantity" id="quantity"  />&nbsp;<span id="errmsg"></span>

$(document).ready(function () {

  $("#quantity").keypress(function (e) {

   if(e.which < 65 /* a */ || e.which > 122 /* z */ || e.keycode != 32 /* space */) {
        e.preventDefault();
    }
   });
});