2017-01-26 2 views
0

負の数値を受け入れるようにコードを変更するにはどうすればよいですか?今、それが唯一の正の数を受け入れる...jQueryは正または負の数字のみを許容します(小数点なし)

$("#numbers").keydown(function (e) { 
 
    if ($.inArray(e.keyCode, [46, 8]) !== -1 || 
 
     (e.keyCode === 65 && (e.ctrlKey === true || e.metaKey === true)) || 
 
     (e.keyCode >= 35 && e.keyCode <= 40)) { 
 
     return; 
 
    } 
 
    if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) { 
 
     e.preventDefault(); 
 
    } 
 
    })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="numbers" />

+0

'の'を...? –

+0

また、小数点を受け入れる – Valip

答えて

1

私は質問を理解していない:あなたは小数番号を破棄したい場合は

また、あなたはそのような何かを行うことができます。 Rory McCrossanは次のように述べています。

<input type="number" /> 

あなたは何らかの形で提出する場合があります。 ここで試してみてください:inputnumbers

あなたの場合は、10進数にすることはできません。

<input type="text" onkeypress="return (event.charCode == 8 || event.charCode == 0) ? null : (event.charCode == 45 || event.charCode >= 48 && event.charCode <= 57)" /> 

はそれを試してみてください:
一つの解決策は、このような何かを行うことですtryme

+0

私は、10進数を入力することはできませんが、負の数と正の数だけを入力することはできません...あなたはフィドルを追加できますか?私はあなたの解決策を働かせることができません – Valip

+0

フィドルの必要はありません。更新された回答を確認します。 – LordMarty

0

あなたはparseInt()機能を使用して入力番号を締めくくることができます。

var raw = $(input).val(); 
var rounded = parseInt(raw); 
if (rounded < raw) { 
    // discard logic.. 
} 
関連する問題