2014-03-07 98 views
1

我只想輸入數字。我無法將輸入類型更改爲「數字」。所以我有這個代碼。jQuery只有輸入數字

Number : <input type="text" name="quantity" id="quantity" /> 
<script> 

$(document).ready(function() { 


    $("#quantity").off("keyup").on("keyup", function(e) { 
     if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) { 
      e.preventDefault(); 
     } 

     if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 190]) !== -1 || 
      // Allow: Ctrl+A 
      (e.keyCode == 65 && e.ctrlKey === true) || 
      // Allow: home, end, left, right 
      (e.keyCode >= 35 && e.keyCode <= 39)) { 
       // let it happen, don't do anything 
       return; 
     } 

    }); 

}); 

它不是作品,但如果我改變選擇到$("#quantity").off("keyup").on("keyup", function(e) {它的工作原理。我沒有改變第一選擇

+0

我想你需要'keydown'或'keypress' – yoavmatchulsky

+0

爲什麼你不能改變輸入類型?如果這是你不能改變HTML,那麼這不是一個問題 - 你可以改變輸入類型的JavaScript。 – Archer

+0

你有另一個干擾'keyup'的事件處理程序嗎? – Johan

回答

1

嘗試這樣,

function isNumber(n){ 
return (parseFloat(n) == n); 
} 

$("document").ready(function(){ 
$("input").keyup(function(event){ 
    var input = $(this).val(); 
    if(!isNumber(input)){ 

     $(this).val(input.substring(0, input .length-1)); 
    } 
    }); 
}); 

Demo