,最好的辦法是檢查,而不是按下的鍵輸入的值。因爲在使用字符代碼時,需要檢查製表符,箭頭,退格符和其他字符。
該用戶之後碼校驗輸入值按下一個鍵:
$('#p_first').keyup(function(){
while(! /^(([0-9]+)((\.|,)([0-9]{0,2}))?)?$/.test($('#p_first').val())){
$('#p_first').val($('#p_first').val().slice(0, -1));
}
});
一段時間,直到輸入值有效循環刪除最後一個字符。正則表達式/^(([0-9]+)((\.|,)([0-9]{0,2}))?)?$/
驗證整數和浮點數例如。 「12,12」,「12.1」,「12」。 數字「12」很重要。 (最後點)也是有效的!否則用戶不能輸入任何句點。
,然後提交的正則表達式檢查有效浮點數([0-9]{1,2})
而不是([0-9]{0,2})
:
$('form').submit(function(e){
if(! /^([0-9]+)((\.|,)([0-9]{1,2}))?$/.test($('#p_first').val())){
$('#p_first').addClass('error');
e.preventDefault();
}
});
注意:這是更好地把$('#p_first')
成變量。var input = $('#p_first');
持有哪個鍵?給出一個更多的問題原因的描述? –
任何鍵...輸入類型=文本...和用戶舉行例如「aaaaaaaaaaaaaaaa」,所以功能keyup()不會觸發,直到他停止按住鍵「a」 –
感謝提供更多問題,我認爲我提出的解決方案應該能解決您的問題 –