2011-04-01 102 views
3

如何在jQuery中編寫代碼,以便用戶不能按點「。」。鍵入文本框?驗證鍵盤上的文本框上的用戶輸入jQuery

我可以在javascript中編寫代碼,每次按鍵瀏覽器檢查是否按下按鍵,如果是點然後子字符串(0,len-1),但它會閃爍! 我想完全阻止按鍵!

回答

5

這應該工作。它一直沒有跨瀏覽器測試:

$("#theTextBox").keyup(function() { 
    if($(this).val().indexOf('.') !== -1) { 
     var newVal = $(this).val().replace('.', ''); 
     $(this).val(newVal); 
    } 
}); 

You can try it here.

編輯:我覺得這是更好的:

function doItPlease() { 
    if ($(this).val().indexOf('.') !== -1) { 
     var newVal = $(this).val().replace('.', ''); 
     $(this).val(newVal); 
    } 
} 

$("#theTextBox").bind("keydown keyup", doItPlease); 

Try the less sucky solution here.

EDIT(再次):我贊成上述解決方案,因爲我非常喜歡反饋方面。這麼說,我覺得這是你追求的:

$("#theTextBox").keyup(function(e) { 
    if (e.which != 190) { 
     return true; 
    } 
    e.preventDefault(); 
}); 

Try it here.

+0

啊,我注意到, – Sourav 2011-04-01 04:48:21

+0

第一個解決方案休息,如果你按住「」。第二個解決方案欺騙你的貓,如果他/她恰巧按下。 – karim79 2011-04-01 04:49:30

+0

是的,這一個更好:),但仍然有一段路要走 – Sourav 2011-04-01 05:03:41

1

使用優秀http://bassistance.de/jquery-plugins/jquery-plugin-validation/表單驗證插件。

所有你需要做的驗證是發行期權作爲類名稱:

HTML

<input id="test" type="text" class="required email"/> 

添加requiredemail爲一類將驗證它作爲一個所需的輸入必須成爲電子郵件。驗證在您鍵入時完成。

jQuery的

$('#test').validate() 

這個插件偉大的事情是,你可以訪問JS直接從Microsoft CDN文件,這樣就不用」必須從您的服務器加載它。在控制+ V事件 http://ajax.aspnetcdn.com/ajax/jquery.validate/1.8/jquery.validate.js