HTML yang ditunjukkan di bawah ini,
<input type="text"/>
ditampilkan di browser seperti ini:
Ketika saya menambahkan teks berikut,
Rubah cokelat cepat melompati anjing malas itu.
Menggunakan HTML di bawah ini,
<input type="text" value="The quick brown fox jumped over the lazy dog."/>
itu ditampilkan di browser seperti ini:
Tapi saya ingin itu ditampilkan di browser seperti ini:
Saya ingin teks dalam elemen masukan saya membungkus. Bisakah ini dicapai tanpa textarea?
Jawaban:
Itu adalah
textarea
tugasnya - untuk input teks multiline. Tidakinput
akan melakukannya ; itu tidak dirancang untuk melakukannya.Jadi gunakan
textarea
. Selain perbedaan visualnya, mereka diakses melalui JavaScript dengan cara yang sama (gunakanvalue
properti).Anda dapat mencegah baris baru dimasukkan melalui
input
acara dan hanya menggunakanreplace(/\n/g, '')
.sumber
<textarea>
tidak akan berfungsi dengan hal-hal seperti pelengkapan otomatis jQuery, tetapi cukup ubah<input>
menjadi<textarea>
dan hanya itu yang diperlukan. Hore untuk standar!Word Break akan meniru beberapa maksud
input[type=text] { word-wrap: break-word; word-break: break-all; height: 80px; }
<input type="text" value="The quick brown fox jumped over the lazy dog" />
Sebagai solusinya, solusi ini kehilangan efektivitasnya di beberapa browser. Silakan periksa demo: http://cssdesk.com/dbCSQ
sumber
Anda tidak dapat menggunakan input untuk itu, Anda perlu menggunakan textarea sebagai gantinya. Gunakan textarea dengan
wrap="soft"
kode dan opsional atribut lainnya seperti ini:<textarea name="text" rows="14" cols="10" wrap="soft"> </textarea>
Atributes: Untuk membatasi jumlah teks di dalamnya, misalnya menjadi "40" karakter, Anda dapat menambahkan atribut
maxlength="40"
seperti ini:<textarea name="text" rows="14" cols="10" wrap="soft" maxlength="40"></textarea>
Untuk menyembunyikan gaya scrollnya. jika Anda hanya menggunakanoverflow:scroll;
atauoverflow:hidden;
atauoverflow:auto;
hanya akan berpengaruh pada satu bilah gulir. Jika Anda menginginkan atribut yang berbeda untuk setiap scroll bar maka gunakan atribut seperti inioverflow:scroll; overflow-x:auto; overflow-y:hidden;
pada style area: Untuk membuat textarea tidak dapat diubah ukurannya Anda dapat menggunakan style denganresize:none;
seperti ini:<textarea name="text" rows="14" cols="10" wrap="soft" maxlength="40" style="overflow:hidden; resize:none;></textarea>
Dengan begitu Anda dapat memiliki atau contoh textarea dengan 14 baris dan 10 kolom dengan bungkus kata dan panjang karakter maksimal "40" karakter yang bekerja persis seperti kotak teks masukan tetapi dengan baris dan tanpa menggunakan teks masukan.
CATATAN: textarea bekerja dengan baris tidak seperti input
<input type="text" name="tbox" size="10"></input>
yang dibuat untuk tidak bekerja dengan baris sama sekali.sumber
Untuk membuat input teks yang nilai di balik terpal adalah string baris tunggal tetapi disajikan kepada pengguna dalam format terbungkus kata, Anda dapat menggunakan atribut contenteditable pada satu
<div>
atau elemen lain:const el = document.querySelector('div[contenteditable]'); // Get value from element on input events el.addEventListener('input', () => console.log(el.textContent)); // Set some value el.textContent = 'Lorem ipsum curae magna venenatis mattis, purus luctus cubilia quisque in et, leo enim aliquam consequat.'
div[contenteditable] { border: 1px solid black; width: 200px; }
<div contenteditable></div>
sumber