Saya memiliki formulir berikut:
<form id="form" action="comments.php" method="post">
<ul>
<li><div class="formbox_titles">Name</div><input type="text" name="name" class="required comm_input" /></li>
<li><div class="formbox_titles">Email</div><input type="text" name="email" class="required comm_input"/></li>
<li><div class="formbox_titles">Message</div><textarea name="message" class="required comm_text"></textarea></li>
<li><input type="submit" value="Submit"></li>
</ul>
</form>
dan JQuery berikut untuk pengiriman formulir:
target: '#preview',
success: function() {
$('#formbox').slideUp('fast');
}
Sekarang masalahnya adalah saya juga memiliki kode JQuery validasi formulir
$().ready(function() {
// validate comment form
$("#form").validate({
});
});
Keduanya bekerja dengan baik dan formulir tidak memunculkan peringatan bahwa ketiga bidang tidak boleh kosong tetapi tanggal di dalam formulir tetap dikirimkan ke dalam database. Saya menggunakan kode berikut untuk validasi formulir http://bassistance.de/jquery-plugins/jquery-plugin-validation/ Jadi pertanyaannya adalah bagaimana menambahkan jquery pertama di dalam yang kedua, jadi yang pertama akan dieksekusi setelah bidang yang diperlukan diisi?
Semoga ada yang bisa membantu. Terima kasih.
Dari contoh Anda, saya tidak jelas tentang aliran kontrol halaman Anda, namun, saya berasumsi Anda memanggil metode submit()
di suatu tempat. Setelah Anda memvalidasi formulir dan sebelum Anda mengirimkannya, periksa validasinya dengan metode valid()
. Kode Anda akan terlihat seperti ini:
$("#form").validate();
if ($('#form').valid())
$('#form').submit();
Saya tidak tahu apa-apa tentang plugin validasi Anda, tetapi biasanya Anda bisa menggunakan kode damai ini
<script>
$("form").submit(function() {
if (validationIsTrue()) {
return true;
}
else {
return false;
}
});
</script>
Anda harus membuat validasi Anda dan kemudian mengembalikan true / false ke fungsi submit formulir. Jika plugin mengembalikan nilai bool, Anda dapat mencoba sesuatu seperti ini:
$("form").submit(function() {
return $(this).validate({ .... });
});
Ketika Anda mengatakan bahwa " tanggal di dalam formulir dikirimkan &" yang tidak masuk akal bagi saya karena dalam cuplikan kode Anda, saya tidak melihat apa pun yang disebut " tanggal &".
Saya telah menggunakan plugin .validate() secara ekstensif ... Apa yang dapat saya katakan yang mungkin dapat membantu adalah bahwa plugin validate yang Anda gunakan memiliki fungsi submitHandler yang dapat Anda gunakan...
// validate comment form
$("#form").validate({
submitHandler : function(form) {
//do something here
form.submit();
}
});
submitHandler dipanggil hanya jika semua aturan untuk validasi terpenuhi. Yaitu dalam kasus Anda, Anda memiliki tiga bidang dengan "required" pada mereka yang berarti bahwa formulir ini TIDAK akan dikirimkan kecuali ketiga bidang tersebut memiliki nilai.
Dengan itu, saya dapat memberi tahu Anda dengan pasti bahwa dengan informasi yang diberikan tidak ada yang mengindikasikan masalah yang Anda jelaskan. Memberikan informasi yang lebih banyak dan lebih baik akan membantu kami mencari tahu apa yang salah.