2015-10-04 16 views
14

私はtype=number入力フィールドを持っていると私はそれのためにminmax値を設定していますHTML機能していない番号の入力最小値と最大値が正しく

<input type="number" min="0" max="23" value="14"> 

私は少しの矢印を使用してレンダリングUIで時刻を変更した場合入力フィールドの右側にあるすべてが正常に動作します.23を超えたり0未満にすることはできません。しかし、手動で(キーボードを使用して)数字を入力すると、どちらの制限も有効になりません。

誰でも希望の番号を入力できないようにする方法はありますか?

+0

あなたはjs/jqueryのehlpでrestrcirionを達成することができます。 – johannesMatevosyan

+0

しかし、あなたのサーバーに返されるものを制限することはできません。入力は常にあなたの側で検証されなければなりません。 – m02ph3u5

答えて

7

HTML5 maxminでは、数値を入力するためにのみ数値を入力できます。しかし、このような変更を行うには、JavaScriptまたはjQueryを使用する必要があります。

$(function() { 
 
    $("input").keydown(function() { 
 
    // Save old value. 
 
    $(this).data("old", $(this).val()); 
 
    }); 
 
    $("input").keyup(function() { 
 
    // Check correct, else revert back to old value. 
 
    if (parseInt($(this).val()) <= 23 && parseInt($(this).val()) >= 0) 
 
     ; 
 
    else 
 
     $(this).val($(this).data("old")); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<input type="number" min="0" max="23" value="14" />

+2

私はまだ範囲外の番号を入力して送信することができます:) – Marek

+1

これは大規模な失敗があります。たとえば '23 'を入力する必要がある場合、' keydown'を取るときには許可されないので、 '2'だけを入力していると考えます。また、 'keyup'がキャッチされていないので、' 5555555'のように1つのキーを押さえることができます。 – joel2703

+0

@ joel2703これは2年前の投稿ですが、これがまだ価値を追加すると思いますか?もしそうなら、私の答えを編集してあなたのものを追加してください。 –

9

たぶん代わりのからユーザーを制限するだろうあなたは「範囲」タイプを使用することができ、「番号」タイプを使用して:私はひとつのアイデアは、data-属性を使用して保存し、古い値でありますあなたがまだ答えを探しているならば、入力タイプ= "番号"を使うことができるので、スライドバーを使用するので数字を入力して、それを現在の数字を表示するように設定したい場合は

+0

Good one ... ':P' –

-1

それがそのために設定されている場合
最小最大の仕事は:
1名
2-MAXLENGTH
3サイズ
4分
5-MAX
はちょうどコピーし、それ

<input name="X" maxlength="3" size="2" min="1" max="100" type="number" /> 

とき(キーボードを使用して)数値/文字を手動で入力し、文字を入力すると小さなメッセージが表示されます "範囲外の数字の場合は数字を入力してください"それ以上の値を選択してください..より

+2

これは良い解決策のように見えますが、私は反応' input'で試してみるとエラーになります。次に、 'input' [documentation](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input)をチェックし、' maxlength'と 'size'がサポートされていないことを知りました'

+0

何ですか?秩序は重要か?これはどのように可能ですか? – Herbertusz

+0

maxlengthはtype = "text"でのみ動作するように設計されています – Nick

0

場合によっては、minおよびmaxの代わりにpatternを使用できます。 requiredと正しく動作します。

+0

ありがとう、それは私を助けます:) –

関連する問題