ユーザーが[送信]をクリックできるようにしたいのですが、正しいフィールドに入力しないと、入力されずにエラーが表示されます。これは可能ですか?エラー部分の実行方法は知っていますが、送信のブロック部分は煩わしいものです。
5 に答える
フォームで送信イベントを処理します。
$(document).ready(function() {
$("#yourFormIdHere").submit(function(e) {
// process fields
if (thereWereErrors) {
e.preventDefault();
}
});
});
event.preventDefault()
イベントハンドラーでメソッドを呼び出すと、そのイベントのデフォルトのアクションが発生しなくなります。送信イベントの場合、デフォルトではもちろんフォームを送信します...
これはあなたが望むものです:(私は考えます)作業デモ http://jsfiddle.net/8YsAx/
良いリンク:http ://docs.jquery.com/Plugins/Validation
API:validate
http ://docs.jquery.com/Plugins/Validation/validate#options
それが原因に合うことを願っています:)
脚本
<script type='text/javascript' src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.min.js"></script>
コード
$(document).ready(function(){
$("#registerForm").validate();
});
<form method="post/get" action"url" onsubmit="return Validation();">
送信がクリックされると、onsubmitが呼び出されます。検証関数は、続行する場合はtrueを返し、フォームが送信されないようにする場合はfalseを返す必要があります。
(「これは可能か」ということを実際に尋ねる代わりに)それを行う方法を尋ねている場合は、jqueryコードでこのようなことを行うことができます。これは、複数のフォームを送信する場合に行う方法です。
if($(your_field_here).html() === '') {
error = 1;
error_field .= "<br />your_field_here is not filled out!";
}
if($(your_second_field_here).html() === '') {
error = 1;
error_field .= "<br />your_field_here is not filled out!";
}
if(error === 1){
$(your_error_field).html(error_field);
} else {
// do your ajax / w.e call here
}
編集:これは私がいつも個人的に行ってきたことです。もっと簡単な方法があれば、コメントで教えてください。
フォームにsubmit-Eventlistenerを追加する必要があります。
$('#myForm').submit(function() {
// return true (proceed submit) | false (stop submit)
// In case the form is not valid you can render your errorMessages first
});