2013-10-10 41 views
0

我是jQuery的新手,對於如何在輸入框中只獲取1到5的數字有點困惑。以下是我的代碼:只想在輸入框中使用jQuery輸入數字1到5

HTML

<div id="errmsg"></div> 

<input type="text" id="number" maxlength="1"/> 

SCRIPT

$(document).ready(function(e) { 
$('#number').keydown(function(e){ 
if (e.which != 8 && e.which != 0 && (e.which < 49 || e.which > 53)) { 
     //display error message 
     $("#errmsg").html("Digits Only").show().fadeOut("slow"); 
       return false; 
    } 

    else if (e.which == 48 || e.which < 48 || e.which > 53) { 
     //display error message 
     $("#errmsg").html("5 Only").show().fadeOut("slow"); 
       return false; 
    } 
}) 

}) 
</script> 

當用戶輸入在輸入框中的任何量,如果他輸入任何字符然後錯誤消息僅顯示「Digits」。如果他輸入的數字超過5,則會顯示錯誤「僅5」消息。

+0

可能的重複[如何只允許數字(0-9)在HTML輸入框使用jQuery?](http://stackoverflow.com/questions/995183/how-to-allow-only-numeric-0-9 -in-html-inputbox-using-jquery) – Andreas

+2

在這種情況下,對於用戶來說,0..5的'select'會更好/更清晰嗎? – Raidri

+0

感謝您的建議,但我只需要使用輸入 – Kamal

回答

1

嘗試這個

$(document).ready(function() { 
    $("#number").keydown(function(event) { 
     console.log(event.keyCode); 
     if ($.inArray(event.keyCode,[49,50,51,52,53]) !== -1) 
     { 
       alert("allow"); 
     } 
     else { 
      alert("not allow");  
     } 
    }); 
    }); 

FIDDLE

0

我很欣賞你已經接受了答案,但對於它的價值,我覺得這是一個比較人性化的解決方案:JSFiddle

它處理控制字符(如Del,退格鍵,Tab輸入)和通過數字鍵盤輸入的數字。這也符合你的具有非數字字符和數字單獨的錯誤消息的要求> 5.

$(document).ready(function() { 
    $("#number").on('keyup', function(event) { 

     var entered = $(this).val(), 
      content = parseInt(entered,10); 

     if (entered !== '' && isNaN(content)) { 

      $('#errorMsg').text('Digits only'); 
      $(this).val(''); 

     } else if (content > 5) { 

      $('#errorMsg').text('Only 5'); 
      $(this).val(''); 

     } else { 

      $('#errorMsg').text('Okay'); 

     } 
    }); 
}); 

然而,不像其他的解決方案,它不會阻止用戶進入無效數據,但會刪除回顧展輸入後的字符。這可能會或可能不符合您的期望。

相關問題