Batas Karakter dalam HTML

95

Bagaimana Anda menerapkan batas karakter pada input teks di HTML?

Iwasakabukiman
sumber

Jawaban:

133

Ada 2 solusi utama:

HTML murni:

<input type="text" id="Textbox" name="Textbox" maxlength="10" />

Yang JavaScript (lampirkan ke Acara onKey):

function limitText(limitField, limitNum) {
    if (limitField.value.length > limitNum) {
        limitField.value = limitField.value.substring(0, limitNum);
    } 
}

Tapi bagaimanapun, tidak ada solusi yang baik. Anda tidak dapat beradaptasi dengan implementasi HTML yang buruk dari setiap klien, itu adalah perjuangan yang mustahil untuk menang. Itulah mengapa jauh lebih baik untuk memeriksanya di sisi server, dengan skrip PHP / Python / apa pun.

e-satis
sumber
27
Periksa server sebagai pemeriksaan kewarasan terakhir, tetapi tambahkan peningkatan sisi klien jika Anda bisa melakukannya; itu membuat pengalaman pengguna yang lebih kaya.
Rob
43

ada atribut maxlength

<input type="text" name="textboxname" maxlength="100" />
cruizer
sumber
1
Ini benar, tetapi beberapa klien tidak memeriksa ini. Hal ini terutama berlaku untuk klien berbasis telepon seluler.
Drejc
Ada juga cara untuk menghapusnya. Misalnya, Ekstensi Pengembang Web Firefox memiliki fungsi Hapus panjang Maksimum.
Sam Hasler
Dengan chrome dan kit pengembangnya (yang disertakan dengan browser), sangat mudah untuk menghapus hal-hal seperti itu di html
AntonioCS
12

Selain hal di atas, saya ingin menunjukkan bahwa validasi sisi klien (kode HTML, javascript, dll.) Tidak pernah cukup. Juga periksa panjang sisi server, atau jangan periksa sama sekali (jika tidak begitu penting sehingga orang dapat diizinkan untuk menyiasatinya, maka tidak cukup penting untuk benar-benar menjamin langkah apa pun untuk mencegahnya).

Juga, rekan-rekan, dia (atau dia) mengatakan HTML, bukan XHTML. ;)

Devin Jeanpierre
sumber
saya setuju. seseorang dapat melakukan POST data secara langsung ke situs web menggunakan beberapa alat skrip, jadi dalam hal ini validasi maxlength dan sisi browser lainnya tidak mudah
cruizer
atau gunakan firebug dan hapus atribut maxlength.
Zach
1

Untuk elemen <input> ada atribut maxlength:

<input type="text" id="Textbox" name="Textbox" maxlength="10" />

(Ngomong-ngomong, jenisnya adalah "teks", bukan "kotak teks" seperti yang ditulis orang lain), namun, Anda harus menggunakan javascript dengan <textarei> s. Bagaimanapun panjangnya harus diperiksa di server.

pilsetnieks
sumber
0

Anda dapat mengatur maxlength dengan jquery yang sangat cepat

jQuery(document).ready(function($){ //fire on DOM ready
 setformfieldsize(jQuery('#comment'), 50, 'charsremain')
})
shekh danishuesn
sumber