2012-04-10 59 views
0

我想知道是否有可能與jQuery執行以下任務:防止用戶輸入一個大於10或小於0jQuery腳本來驗證號在進入

例如,數像9.10是好的,但81,101,11或負數是錯誤的值。

爲了更好地瞭解情況,驗證是在測試後輸入成績。

謝謝。

+3

當然這是可能的。你有什麼嘗試?你什麼時候想要檢查發生?模糊?提交? – 2012-04-10 17:55:42

回答

2

此代碼將只允許您在框中輸入數字,也不會接受任何輸入,將使小於0的數量和大於10

var $grade = $('#grade'); 

$grade.keydown(function (e) { 
    var code = e.which, 
     chr = String.fromCharCode(code), // key pressed converted to s string 
     cur = $grade.val(), 
     newVal = parseFloat(cur + chr); // what the input box will contain after this key press 

    // Only allow numbers, periods, backspace, tabs and the enter key 
    if (code !== 190 && code !== 8 && code !== 9 && code !== 13 && !/[0-9]/.test(chr)) { 
     return false; 
    } 

    // If this keypress would make the number 
    // out of bounds, ignore it 
    if (newVal < 0 || newVal > 10) { 
     return false; 
    } 

}); 

http://jsfiddle.net/WPdVq/

1

如果你想爲他們退出輸入字段中顯示的東西,你可以使用change event

$('.target').change(function() { 
    if($(this).val() > 10) { 
     // Do something, like warn them and/or reset to empty text. 
     alert('Greater than 10.'); 
     $(this).val(''); 
    }  
});   

jsfiddle working example

另外,如果你想顯示每個按鍵後的東西,你可以使用keyup事件。

+0

看起來不錯,謝謝。它可以更新,所以它只會接受數值和點? – Psyche 2012-04-10 20:27:14

+0

查看[無效代碼]的[答案](http://stackoverflow.com/a/10096685/448876)。他有更完整的答案,包括你的要求。 – absynce 2012-04-11 19:08:29