だけ

2013-10-07 4 views
133

現在、私は次のコードだけ

<input type="number" /> 

を持っていることは、この

enter image description here

のようなものにはほとんどのセレクタ物事を出てきます右に番号をマイナスにすることができます。それをどうやって防ぐのですか?

私はtype="number"を使用することに疑問を抱いています。それは解決しているよりも多くの問題を引き起こしています。私はそれをどうしてもチェックするつもりですので、ちょうどtype="text"を使用しますか?

+4

さらに、サーバーの値を検証する必要があります。誰でも自分の望むコンテンツを送信するためにフィールドを上書きすることができます。 – zzzzBov

+1

@zzzzBovええ、私はPHPでそれを検証し、準備文も使用していますが、大麦がウェブブラウザをどのように利用するかを知っているユーザーだけが心配しています。 lol –

+0

[入力タイプ= "数値"が負の値になるのを防ぐ方法はありますか?](https://stackoverflow.com/questions/7372067/is-there-any-way-to-prevent-input-負の値を取るタイプ番号) – Vega

答えて

329

は、それはあなたがなりたい方法を正確に依存a min attribute

<input type="number" min="0"> 
+49

@Pavlo - それはかなり極端なニックピッキングです。 '0'が望ましくない場合は、それをどのように変更するのかが明らかです。質問には、問題は数字がマイナスになることも記載されています。 – Quentin

+26

あなたはまだ負の数を入力することができますばかげている。 – Nizzy

+10

これはセレクタの矢印で機能しますが、負の数値を入力することができます –

51

を追加します。それはあなたがより、整数のみを受け入れるようにしたい:

<input type="number" min="1" step="1">

あなたは、との山車をしたい場合はたとえば、小数点以下2桁:

<input type="number" min="0.01" step="0.01">

+0

現在はステップ= "1"なしで動作しているようです...まだ追加する必要がありますか? –

+0

@Arianあなたは 'max'値を指定しない限り、省略することができます。 – Pavlo

+1

ステップ1はブラウザのデフォルトであり、あなたは大丈夫です –

5

試行

<input type="number" pattern="^[0-9]" title='Only Number' min="1" step="1">

+0

**タイプを定義するときに、ロールに特定のフォーマットが必要** ** –

+7

これをクロームで試してみましたが、パターンは適用されません –

+2

数字入力でパターンが機能しません。 –

0

<input type="number" min="1" step="1">

20

あなたはinputタグ内onkeypressを追加することによってのみ正の整数を含むように入力を強制することができます。ここ

<input type="number" onkeypress="return event.charCode >= 48" min="1" >

minタグを使用すると、入力バー内にスクロールすることによって1の最小値に来ることができることを確実にしながら、event.charCode >= 48は、0以上の数だけが返されることを保証します。

+1

エッジには "A"を入力できます。 –

+2

あなたはまだ負の数をペーストすることができます – methyl

-1

これを試してください。 それは魅力のように機能します。 追加のJavaScriptコードは必要ありません。

onkeypress="return event.charCode 

これを入力タグに入れてください。このような。

<input type="number" min="0" max="" onkeypress="return event.charCode >= 48" class="form-control" placeholder="Enter number(0-10)"> 

ありがとうございます。

+1

'onkeypress'はjavascript – RozzA

+0

はいです。しかし、私は "追加の" javascriptは必要ではないと言いました。 – Prometheus

0

このコードを入力します。例えば

onkeypress="return (event.charCode == 8 || event.charCode == 0 || event.charCode == 13) ? null : event.charCode >= 48 && event.charCode <= 57" 

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

これは何が起こっているのか分からない人にとっては本当に混乱しています。 – RozzA

13

私は負の数を防止するための別の解決策を発見しました。

<input type="number" name="test_name" min="0" oninput="validity.valid||(value='');"> 
+0

非常にきれいな解決 – RozzA

+0

完璧に私のために働いた。 –

+0

これは正しい答えです、ありがとうございます。 – systematical