フォーム入力テキストフィールドで使用できる文字数を制限する


115

テキストボックスに最大5文字のみを入力するようにユーザーを制限または制限するにはどうすればよいですか?

以下は、フォームの一部としての入力フィールドです。

<input type="text" id="sessionNo" name="sessionNum" />

maxSizeのようなものを使用していますか、それともそのようなものですか?


16
ここで<input type="text" maxlength="5"> ライブデモ: jsfiddle.net/mcBbW/1
サイムVIDAS

回答:


174

maxlength

入力として受け入れられる最大文字数。これはSIZEで指定された値よりも大きくすることができます。その場合、フィールドは適切にスクロールされます。デフォルトは無制限です。

<input type="text" maxlength="2" id="sessionNo" name="sessionNum" onkeypress="return isNumberKey(event)" />

ただし、これはハンドラーの影響を受ける場合とされない場合があります。長さをテストするために、別のハンドラー関数を使用または追加する必要がある場合もあります。


この回答は、入力フェーズで制限するときに役立ちます。また、送信時に検証フェーズで制限し、pattern属性を使用して検証メッセージをポップアップすることもできます。stackoverflow.com/questions/10281962/…を

31

そうする最も簡単な方法:

maxlength="5"

したがって、この属性をコントロールに追加します。

<input type="text" 
    id="sessionNo" 
    name="sessionNum" 
    onkeypress="return isNumberKey(event)" 
    maxlength="5" />

8

ヘッダーに以下を追加します。

<script language="javascript" type="text/javascript">
function limitText(limitField, limitNum) {
    if (limitField.value.length > limitNum) {
        limitField.value = limitField.value.substring(0, limitNum);
    }
}
</script>

    <input type="text" id="sessionNo" name="sessionNum" onKeyDown="limitText(this,5);" 
onKeyUp="limitText(this,5);"" />

this.form.sessionNo少し疑わしいようです。なぜthisですか?また、limitCountlimitNumもオーダー/不要でアウトに見えますか?
Jared Farrish

1
修正しました。特定の文字または数字に制限したい場合はこの方法を使用できますが、それを気にしない場合は、最大長が適切に機能します。ですから、値があなたができたか、すべての正の数、など1-50の間になりたい場合は言う
b3verelabs

this.form.sessionNoまだ正しくないようです。thisそのコンテキストでは、inputではなくを指しdocumentます。
Jared Farrish

それでも正しくありませんform。どちらも参照していません。thisは、あなたが必要とすることすべてです。また、技術的にはform、によって要素を参照したい場合、それは(form/ inputnameではなくid、によって、つまり次のようになりdocument.formName.sessionNumます。
Jared Farrish

私は以前にフォームにラップされていたので速く入力しました。ただし、フィールドへの入力にrefを渡してフィールドの現在の値を取得し、そのフィールドを制限するロジックを追加するだけです。
b3verelabs 2011

8

w3cによると、MAXLENGTH属性のデフォルト値は無制限です。したがって、最大値を指定しない場合、ユーザーは聖書を数回カットアンドペーストしてフォームに貼り付けることができます。

MAXLENGTHを適切な数に指定した場合でも、処理する前にサーバー上で送信されたデータの長さを再確認してください(phpやaspなどを使用して)。基本的なMAXLENGTH制限を回避するのは非常に簡単です。


1
@ lopezdp、html / javascriptの制限を「回避」する方法は複数あります。最も簡単に確認するには、Chromeでページを開き、「要素を検査」して、HTMLを手動で変更します。より手の込んだ方法-制限を無視して(curlライブラリなどを使用して)データをポストするスクリプトを記述します。バックエンド開発者として、データのフロントエンド検証を決して信頼すべきではありません-すべてのルールはサーバーで複製されるべきです。フロントエンドの検証は、サーバーにリクエストを送信せずに明らかなエラーを指摘することにより、ユーザーの時間を節約するための単なる方法です。
Val Petruchek 2017

4
<input type="text" maxlength="5">

入力できる文字の最大数は5です。


4

シンプルにする

<input type="text" maxlength="3" />

アラートを使用して、最大文字数が使用されたことを示します。


3

私はいつもこのようにします:

$(document).ready(function(){
var maxChars = $("#sessionNum");
var max_length = maxChars.attr('maxlength');
if (max_length > 0) {
    maxChars.bind('keyup', function(e){
        length = new Number(maxChars.val().length);
        counter = max_length-length;
        $("#sessionNum_counter").text(counter);
    });
}
});

入力:

<input name="sessionNum" id="sessionNum" maxlength="5" type="text">
Number of chars: <span id="sessionNum_counter">5</span>

2

最大長

入力として受け入れられる最大文字数。maxlength属性は、要素で許可される最大文字数を指定します。

Maxlength W3スクール

<form action="/action_page.php">
    Username: <input type="text" name="usrname" maxlength="5"><br>
    <input type="submit" value="Submit">
</form>

1

<input type = "text" maxlength="9"> または使用できます

<input type = "number" maxlength="9">番号または <input type = "email" maxlength="9">電子メールの検証のために表示されます


1
<input type="number" id="xxx" name="xxx" oninput="maxLengthCheck(this)" maxlength="10">

function maxLengthCheck(object) {
  if (object.value.length > object.maxLength)
  object.value = object.value.slice(0, object.maxLength)
}


0

次のコードには、カウントされた...

var count = 1;

do {
    function count_down(obj, count){

    let element = document.getElementById('count'+ count);

    element.innerHTML = 80 - obj.value.length;

    if(80 - obj.value.length < 5){
        element.style.color = "firebrick";
    }else{
        element.style.color = "#333";
    }
}
count++;
} while (count < 20); 
.text-input {
    padding: 8px 16px;
    width: 50%;
    margin-bottom: 5px;
    margin-top: 10px;
    font-size: 20px;
    font-weight: 700;
    font-family: Raleway;
    border: 1px solid dodgerblue;
  }
<p><input placeholder="Title" id="bike-input-title" onkeyup="count_down(this, 3)" maxlength="80"  class="text-input" name="bikeTitle" ></p>
        <span id="count3" style="float: right; font-family: Raleway; font-size:20px; font-weight:600; margin-top:-5px;">80</span><br>


-1
<input type="text" name="MobileNumber" id="MobileNumber" maxlength="10" onkeypress="checkNumber(event);"  placeholder="MobileNumber">

<script>
function checkNumber(key) {
  console.log(key);
  var inputNumber = document.querySelector("#MobileNumber").value;
  if(key.key >= 0 && key.key <= 9) {
    inputNumber += key.key;
  }
  else {
    key.preventDefault();
  }
}
</script>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.