Di formulir saya, saya ingin menggunakan tipe formulir HTML5 baru, misalnya <input type="url" />
( info lebih lanjut tentang jenis di sini ).
Masalahnya adalah Chrome ingin menjadi sangat membantu dan memvalidasi elemen-elemen ini untuk saya, kecuali bahwa itu menyebalkan. Jika gagal validasi bawaan, tidak ada pesan atau indikasi selain elemen mendapatkan fokus. Saya lebih suka elemen URL "http://"
, dan validasi khusus saya sendiri hanya memperlakukan nilai-nilai itu sebagai string kosong, namun Chrome menolaknya. Jika saya bisa mengubah aturan validasinya, itu akan berhasil juga.
Saya tahu saya bisa saja kembali menggunakan type="text"
tetapi saya ingin perangkat tambahan yang bagus menggunakan penawaran jenis baru ini (mis.: Secara otomatis beralih ke tata letak keyboard khusus pada perangkat seluler):
Jadi, apakah ada cara untuk mematikan atau menyesuaikan validasi otomatis?
$('[inputmode]').each(function () { this.attr({type: this.attr('inputmode'), novalidate: true}) });
inputmode
akan. Melakukan hal-hal dengan cara Anda, Anda masih tidak bisa (misalnya) membaca nilai-nilai non-numerik yang diketik pengguna ke dalam kotak input jenis number
. Misalnya, coba ketikkan sesuatu yang bukan angka ke dalam kotak teks di biola ini dan klik tombolnya.
<input type='number'>
sekali tidak menerima nilai non-numerik?
inputmode
atribut , yang - jika saya memahami apa yang saya baca dengan benar - dapat digunakan untuk menentukan jenis keyboard apa yang harus ditawarkan kepada pengguna ketika mereka berinteraksi dengan bidang, tanpa juga menyiratkan aturan validasi apa pun. Di beberapa titik di masa depan, menggunakaninputmode
atribut sebagai gantitype
atribut mungkin akan menjadi solusi yang tepat untuk masalah ini - tetapi belum.