2014-01-28 106 views
0

我有一個文本框,它只能在按鍵上接受整數。我通過只允許整數和值應介於1和100之間

實現此使用的鍵碼現在
var charCode = (evt.which) ? evt.which : event.keyCode 
if (charCode > 31 && (charCode < 48 || charCode > 57)) { 
    dojo.stopEvent(evt); 
} 

,按鍵時我不得不從範圍1所輸入的值限制到100(包括100),並應允許退格字符以使用戶刪除numbers.I必須實現在原生javascript或dojo庫。有什麼辦法可以實現兩者?

+0

請勿使用charCode。讀取值並進行測試,否則您將排除各種有效的按鍵,如退格鍵,光標鍵按等。另外,用戶可以將任何內容粘貼到控件中,並且根本不會獲得密鑰代碼。 – RobG

回答

0

修改用戶輸入的內容真的很煩人,在屏幕提示中需要格式化並在發送到服務器時驗證該值(或者您正在使用的任何內容)時,更好。

但是,如果你真的無論如何要做到這一點,不測試按下鍵,測試在控制的實際值:

<input ... onkeyup="checkValue(this.value);"> 

和功能:

function checkValue(s) { 

    // use a regular expression to test the value is only digits 
    var re = /^\d+$/; 

    if (re.test(s) && s > 0 && s < 100) { 
    // do success stuff 

    } else { 
    // do failed stuff 
    } 
} 

現在,用戶輸入時以及將值發送到服務器時,可以使用相同的功能。如果您必須使用keyCode來完成這項任務,那麼您需要允許許多代碼,而不僅僅是數字(參見上文)。

0

你看過道場的Number Text Box?這聽起來像你想要的,你可以限制內容的範圍。

相關問題