Validasi khusus bidang yang diperlukan
Saya memiliki satu formulir dengan banyak bidang masukan. Saya telah menempatkan validasi html5
<input type="text" name="topicName" id="topicName" required />
ketika saya mengirimkan formulir tanpa mengisi kotak teks ini menunjukkan pesan default seperti
"Please fill out this field"
Adakah yang bisa membantu saya untuk mengedit pesan ini?
Saya memiliki kode javascript untuk mengeditnya, tetapi tidak berfungsi
$(document).ready(function() {
var elements = document.getElementsByName("topicName");
for (var i = 0; i < elements.length; i++) {
elements[i].oninvalid = function(e) {
e.target.setCustomValidity("");
if (!e.target.validity.valid) {
e.target.setCustomValidity("Please enter Room Topic Title");
}
};
elements[i].oninput = function(e) {
e.target.setCustomValidity("");
};
}
})
Email validasi khusus
Saya telah mengikuti formulir HTML
<form id="myform">
<input id="email" name="email" type="email" />
<input type="submit" />
</form>
Pesan validasi yang ingin saya sukai.
Bidang yang harus diisi: Harap Masukkan Alamat Email Email
Salah: 'testing @ .com' bukan Alamat Email yang Valid. (di sini, alamat email yang dimasukkan ditampilkan di kotak teks )
Saya sudah mencoba ini.
function check(input) {
if(input.validity.typeMismatch){
input.setCustomValidity("'" + input.value + "' is not a Valid Email Address.");
}
else {
input.setCustomValidity("");
}
}
Fungsi ini tidak berfungsi dengan benar, Apakah Anda punya cara lain untuk melakukan ini? Itu akan sangat dihargai.
javascript
jquery
html
Sumit Bijvani
sumber
sumber
Jawaban:
Cuplikan kode
Karena jawaban ini mendapat banyak perhatian, berikut adalah cuplikan yang dapat dikonfigurasi yang saya buat:
Pemakaian
→ jsFiddle
Keterangan lebih lanjut
defaultText
ditampilkan pada awalnyaemptyText
ditampilkan saat input kosong (dihapus)invalidText
ditampilkan ketika input ditandai sebagai tidak valid oleh browser (misalnya jika itu bukan alamat email yang valid)Anda dapat menetapkan string atau fungsi ke masing-masing dari tiga properti.
Jika Anda menetapkan suatu fungsi, itu dapat menerima referensi ke elemen input (simpul DOM) dan harus mengembalikan string yang kemudian ditampilkan sebagai pesan kesalahan.
Kesesuaian
Diuji di:
Jawaban lama
Anda dapat melihat revisi lama di sini: https://stackoverflow.com/revisions/16069817/6
sumber
please fill out this field
dapatkah Anda mengubah pesan ini menjadiPlease enter email address
setCustomValidity()
email kosong hanya setelah peristiwa blur diaktifkan sekali, jadi kami hanya perlu memanggilnya saat memuat DOM juga. Lihat contoh / jsFiddle yang diperbarui.if (input.value == "") {
, menjadi membacaif (input.value.trim() == "") {
- melakukan trik untuk saya.Anda cukup mencapai ini menggunakan atribut oninvalid, periksa kode demo ini
Demo Codepen: https://codepen.io/akshaykhale1992/pen/yLNvOqP
sumber
oninput="setCustomValidity('')"
: stackoverflow.com/a/16878766/1729850HTML:
JAVASCRIPT:
Demo:
http://jsfiddle.net/patelriki13/Sqq8e/
sumber
Coba ini:
Saya menguji ini di Chrome dan FF dan berfungsi di kedua browser.
sumber
<b>Error: </b> Incorrect email address
.setCustomValidity("")
tidak membantu. Apakah ada parameter lain yang perlu disetel? Mohon saran.Sobat, saya tidak pernah melakukan itu di HTML 5 tetapi saya akan mencoba. Coba lihat biola ini.
Saya telah menggunakan beberapa jQuery, peristiwa dan properti asli HTML5 dan atribut khusus pada tag input (ini dapat menyebabkan masalah jika Anda mencoba memvalidasi kode Anda). Saya tidak menguji di semua browser tetapi saya pikir ini mungkin berhasil.
Ini adalah kode JavaScript validasi lapangan dengan jQuery:
Bagus. Berikut adalah bentuk html sederhana:
Atributnya
requiredmessage
adalah atribut khusus yang saya bicarakan. Anda dapat mengatur pesan Anda untuk setiap bidang yang diperlukan karena jQuery akan mendapatkannya ketika itu akan menampilkan pesan kesalahan. Anda tidak harus mengatur setiap bidang langsung di JavaScript, jQuery melakukannya untuk Anda. Regex itu sepertinya baik-baik saja (setidaknya memblokir Anda[email protected]
! Haha)Seperti yang Anda lihat di biola, saya membuat validasi tambahan untuk acara formulir pengiriman ( ini juga terjadi di dokumen. ):
Saya harap ini berhasil atau membantu Anda.
sumber
data-
awalan standar ; misdata-requiredMessage
. Dengan jQuery, ini dapat diakses dengan$(element).data('requiredMessage')
; Saya tidak tahu antarmuka DOM standar di luar kepala saya.Ini bekerja dengan baik untuk saya:
dan formulir yang saya gunakan dengan (terpotong):
sumber
Anda dapat melakukan ini dengan menyiapkan event listener untuk 'tidak valid' di semua input dari jenis yang sama, atau hanya satu, tergantung pada apa yang Anda butuhkan, dan kemudian menyiapkan pesan yang tepat.
Bagian kedua dari skrip, pesan validitas akan disetel ulang, karena jika tidak, tidak mungkin mengirimkan formulir: misalnya ini mencegah pesan dipicu bahkan ketika alamat email telah diperbaiki.
Anda juga tidak perlu menyiapkan bidang masukan seperti yang diperlukan, karena 'tidak valid' akan dipicu begitu Anda mulai mengetik masukan.
Berikut ini biola untuk itu: http://jsfiddle.net/napy84/U4pB7/2/ Semoga membantu!
sumber
Gunakan atribut "title" di setiap tag masukan dan tulis pesan di atasnya
sumber
Hanya perlu mendapatkan elemen dan menggunakan metode setCustomValidity.
Contoh
sumber
Anda cukup menggunakan atribut oninvalid = " , dengan bingding this.setCustomValidity () eventListener!
Ini kode demo saya! (Anda dapat menjalankannya untuk memeriksanya!)
link referensi
http://caniuse.com/#feat=form-validation
https://www.w3.org/TR/html51/sec-forms.html#sec-constraint-validation
sumber
Anda dapat menambahkan skrip ini untuk menampilkan pesan Anda sendiri.
Untuk validasi lain seperti ketidakcocokan pola, Anda dapat menambahkan tambahan jika kondisi lain
Suka
ada kondisi validitas lain seperti rangeOverflow, rangeUnderflow, stepMismatch, typeMismatch, valid
sumber