Batasi jumlah karakter yang diperbolehkan dalam bidang teks masukan formulir


115

Bagaimana cara membatasi atau membatasi pengguna untuk hanya memasukkan maksimal lima karakter ke dalam kotak teks?

Di bawah ini adalah bidang masukan sebagai bagian dari formulir saya:

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

Apakah itu menggunakan sesuatu seperti maxSize atau sesuatu seperti itu?


16
Di sini <input type="text" maxlength="5"> Demo langsung: jsfiddle.net/mcBbW/1
Šime Vidas

Jawaban:


174

maxlength :

Jumlah karakter maksimum yang akan diterima sebagai input. Ini bisa lebih besar dari yang ditentukan oleh SIZE, dalam hal ini bidang akan di-scroll dengan benar. Defaultnya tidak terbatas.

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

Namun, ini mungkin atau mungkin tidak dipengaruhi oleh pawang Anda. Anda mungkin perlu menggunakan atau menambahkan fungsi penangan lain untuk menguji panjangnya juga.


Saya menemukan jawaban ini berguna saat membatasi dalam fase input. Anda juga dapat membatasinya dalam fase validasi saat mengirimkan dan memunculkan pesan validasi menggunakan patternatribut. Lihat stackoverflow.com/questions/10281962/…

31

Cara termudah untuk melakukannya:

maxlength="5"

Jadi .. Menambahkan atribut ini ke kontrol Anda:

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

8

Tambahkan yang berikut ini ke header:

<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.sessionNotampaknya sedikit tersangka. Kenapa tidak this? Juga, limitCountdan limitNumjuga tampak rusak / tidak perlu?
Jared Farrish

1
Diperbaiki. Melakukan cara ini jika Anda ingin membatasinya ke karakter atau angka tertentu yang Anda bisa, tetapi jika Anda tidak peduli tentang itu maka Panjang maks akan berfungsi dengan baik. Jadi katakanlah jika Anda ingin nilainya antara 1-50 Anda bisa atau semua angka positif, dll.
b3verelabs

this.form.sessionNosepertinya masih belum benar. thisdalam konteks itu akan menunjuk ke input, bukan document.
Jared Farrish

Masih tidak benar, itu tidak merujuk pada formkeduanya. thisadalah semua yang Anda butuhkan. Juga, secara teknis jika Anda ingin untuk referensi elemen oleh form, itu akan menjadi oleh ( form/ input) name, tidak id, yaitu: document.formName.sessionNum.
Jared Farrish

Benar Saya mengetik dengan cepat itu dibungkus dalam formulir sebelumnya. Tetapi Anda hanya akan meneruskan ref ke input ke dalam fungsi untuk mendapatkan nilai bidang saat ini lalu menambahkan logika apa pun yang Anda inginkan untuk membatasi bidang itu.
b3verelabs

8

Menurut w3c , nilai default untuk atribut MAXLENGTH adalah angka yang tidak terbatas. Jadi, jika Anda tidak menentukan jumlah maksimum, pengguna dapat memotong dan menempelkan Alkitab beberapa kali dan menempelkannya di formulir Anda.

Bahkan jika Anda menentukan MAXLENGTH ke angka yang wajar, pastikan Anda memeriksa ulang panjang data yang dikirimkan di server sebelum memproses (menggunakan sesuatu seperti php atau asp) karena cukup mudah untuk mengatasi batasan MAXLENGTH dasar.


1
@lopezdp, ada banyak cara untuk "mengatasi" pembatasan html / javascript. Cara termudah untuk memeriksa adalah membuka halaman Anda dengan Chrome, "memeriksa elemen", dan mengubah HTML secara manual. Cara yang lebih rumit untuk menyiasati - tulis skrip yang akan memposting data mengabaikan batasan apa pun (menggunakan perpustakaan curl atau yang serupa). Sebagai pengembang backend, Anda tidak boleh mempercayai validasi data frontend - semua aturan harus diduplikasi di server. Validasi frontend hanyalah cara untuk menghemat waktu bagi pengguna dengan menunjukkan kesalahan yang jelas tanpa membuat permintaan ke server.
Val Petruchek

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

jumlah huruf maksimal yang bisa di input adalah 5.


4

Sederhanakan

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

dan gunakan peringatan untuk menunjukkan bahwa karakter maks telah digunakan.


3

Saya selalu melakukannya seperti ini:

$(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);
    });
}
});

Memasukkan:

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

2

Panjang maksimal

Jumlah karakter maksimum yang akan diterima sebagai input. Atribut maxlength menentukan jumlah karakter maksimum yang diperbolehkan dalam elemen.

Maxlength W3 sekolah

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

1

Anda dapat menggunakan <input type = "text" maxlength="9"> atau

<input type = "number" maxlength="9">untuk nomor atau <input type = "email" maxlength="9">untuk validasi email akan muncul


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

Gunakan maxlenght = "jumlah karakter"

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

0

Kode berikut mencakup ...

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>
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.