只有IE8 html文本框中的字符

时间:2012-09-07 12:54:24

标签: javascript jquery internet-explorer internet-explorer-8

我想限制用户只输入html文本框中的字符。我使用以下代码

 $('.alphaonly').live("input", function () {
     $(this).val($(this).val().replace(/[^A-Za-zÀ-ÿ ]/g, ''));
 });

这在IE9中工作正常,但在IE8中失败。

任何人都可以帮我修理吗?

4 个答案:

答案 0 :(得分:3)

我的意思是使用插件更容易:

http://www.thimbleopensource.com/tutorials-snippets/jquery-plugin-filter-text-input

$('#text_input').filter_input({regex:'[a-z]'}); 

答案 1 :(得分:2)

对旧版浏览器使用keyupmouseup事件:

 $('.alphaonly').on("keyup mouseup input", function () {
     $(this).val($(this).val().replace(/[^A-Za-zÀ-ÿ ]/g, ''));
 });​

IE中不支持input事件< 9.您可以使用keyupmouseup完成几乎相同的功能。此外,从jQuery 1.7开始,.live()被弃用,而不是.on()

<强> DEMO

答案 2 :(得分:0)

Try this ...
$('.alphaonly').live({
   keyup : function () {
     $(this).val($(this).val().replace(/[^A-Za-zÀ-ÿ ]/g, ''));
   }
});

答案 3 :(得分:0)

//If you consider doing it plain JavaScript way, without JQuery      
 function lettersOnly(evt) {
   evt = (evt) ? evt : event;
   var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode :
      ((evt.which) ? evt.which : 0));
   if (charCode > 31 && (charCode < 65 || charCode > 90) &&
      (charCode < 97 || charCode > 122)) {
      alert("Enter letters only.");
      return false;
   }
   return true;
 }