2

テキストボックスに数字のみを入力できるフォームがあります。そうしないと、アラートが表示されます。

<form name="formName" action="" method="post" OnSubmit="return chkSubmit();"> 
    Input Number 
    <input type="text" name="txtNumber" value="">
    <input type="submit" name="btnSubmit" value="Submit">
</form>

次のJavaScriptを使用します。

<script>
function chkSubmit()
{
     if(isNaN(document.formName.txtNumber.value))
     {
        alert('Please input numbers only.');
        return false;
     }
}</script>

4文字だけを入力できるようにするにはどうすればよいですか?警告はありません。ユーザーが4文字を超えて入力できないようにしてください。

4

2 に答える 2

5

input要素はmaxlength属性をサポートします。例:

<input type="text" name="txtNumber" value="" maxlength="4">

...これは、ユーザー エージェント (ブラウザー) によって強制されます。chkSubmitプロパティの長さを確認することで、ベルトとブレースのアプローチが必要な場合は、それを強制することもできますvalueが、それはずっと存在しており、それを処理しないユーザーエージェントを見つけることはできないでしょう.

RobG の指摘 (質問に対するコメント) もよく理解されています。フォーム送信前にユーザーを制限することは、ユーザーを苛立たせる傾向があります。ユースケースに適している場合とそうでない場合がありますが、少なくともそれらを制限しないことを検討し (ただし、keypressイベントを使用して視覚的なフィードバックを提供する可能性があります)、送信時に長さのみを検証することを検討してください。これは、スタック オーバーフローがコメントに対して行う方法です。

于 2012-10-30T23:11:52.343 に答える
1

最大長を使用

<form name="formName" action="" method="post" OnSubmit="return chkSubmit();"> 
    <input type="text" name="txtNumber" maxlength="4" value="" />
    <input type="submit" name="btnSubmit" value="Submit" />
</form>
于 2012-10-30T23:15:54.730 に答える