2012-09-07 62 views
3

我想限制用戶在html文本框中只輸入字符。我正在使用以下代碼IE8 html文本框中只有字符

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

並且這在IE9中正常工作,但在IE8中失敗。

任何人都可以幫我修復嗎?

回答

2

使用keyupmouseup事件對舊版瀏覽器:

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

input事件不會在IE < 9.支持您可以使用keyupmouseup完成幾乎相同的功能。另外,從jQuery 1.7開始,.live()已棄用,用於支持.on()

DEMO

+0

沒錯,但您可以添加'input'和'mouseup'事件識別'貼'等 – Bergi

+0

@Bergi:的確,謝謝。 –

+0

謝謝,但我們嘗試了這種方法。 keyup的問題是,我們可以看到輸入。而在輸入事件用戶不能看到他輸入的數字。 –

0
Try this ... 
$('.alphaonly').live({ 
    keyup : function() { 
    $(this).val($(this).val().replace(/[^A-Za-zÀ-ÿ ]/g, '')); 
    } 
}); 
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; 
}