我有下面的代碼片段:檢查使用正則表達式只有整數位jQuery中
var reg = /^[0-9]$/;
$('input[type="text"]').keypress(function(){
console.log(reg.test(parseInt($(this).val())));
});
當我按下任意鍵(數字或其他),它總是返回false
。但我找不到問題,請給我一些解決方案。
我有下面的代碼片段:檢查使用正則表達式只有整數位jQuery中
var reg = /^[0-9]$/;
$('input[type="text"]').keypress(function(){
console.log(reg.test(parseInt($(this).val())));
});
當我按下任意鍵(數字或其他),它總是返回false
。但我找不到問題,請給我一些解決方案。
您創建的正則表達式只針對任何數字發生的1次測試。它還斷言它是字符串開始後跟一個數字,然後是字符串的結尾。
在將實際內容放入文本框之前觸發按鍵事件。這應該只適用於第二次按鍵,因爲那是當文本框內容.val()
產生完全1位數。
如果你按照@ThiefMaster發佈的鏈接,你會發現你的問題的答案。您還會注意到它使用事件對象的charCode和keyCode屬性來進行驗證而不是文本框的內容。
請參閱How to allow only numeric (0-9) in HTML inputbox using jQuery?以獲得正確的解決方案。
如果你想做一些自己的事情,無論如何看看這些插件。它是非常重要不會像用戶通常希望這些密鑰工作一樣破壞常見的東西,如退格(或ctrl + c/v/x)。
$("#txtBoxID").keypress(function (event) {
var reg = /[\d\.]/g;
if (!reg.test((event.key))) {
return false;
}
});
我已經像上面做了,我已經使用按鍵和它的事件和一個常規功能將允許用戶在文本框中輸入/輸入框中輸入唯一的數字。
您可以檢查event.key,這給關鍵的價值有蜜蜂
因爲在處理器執行時,字段的值還沒有更新。它是一個空字符串(如果沒有默認值)。你可以用下面的方法測試它:'console.log($(this).val());' – 2011-04-24 08:18:30