Onclickイベントの送信ボタンが送信されないようにしたい:
_$j('form#userForm .button').click(function(e) {
if ($j("#Zip_field").val() > 1000){
$j('form#userForm .button').attr('onclick','').unbind('click');
alert('Sorry we leveren alleen inomstreken hijen!');
e.preventDefault();
return false;
}
});
_
これは送信ボタンです:
_<button class="button vm-button-correct" type="submit"
onclick="javascript:return myValidator(userForm, 'savecartuser');">Opslaan</button>
_
「アラート」機能が表示され、onclickイベントも削除されますが、フォームは送信されます。送信する前に手動でonclickイベントを削除すると、問題が解決します。ただし、これはのコア機能であり、削除したくありません。
編集:
それは間違いなくonclickセレクターが原因です。どうすれば、jQueryスクリプトにonclickイベントを即座にリロードさせることができますか? jqueryコードの前に追加:$j('form#userForm .button').attr('onclick','');
は問題を解決します。しかし、私の検証はもう機能しません...
基本的に、ボタンタイプをtype="submit"
からtype="button"
に変更すると、そのようなボタンはフォームを送信せず、回避策は必要ありません。
お役に立てれば。
関数/イベント引数があることを忘れないでください。ただし、パラメーターを指定する必要があります。
$("#thing").click(function(e) {
e.preventDefault();
});
このようにして、送信は停止されるため、条件付けを行うことができます。
最善の方法は、フォームの送信イベントハンドラ内ですべてを行うことです。インラインのonclickを削除し、submit関数内で実行します
$j('#userForm').submit(function(e) {
if (+$j("#Zip_field").val() > 1000){
alert('Sorry we leveren alleen inomstreken hijen!');
return false;
}
return myValidator(userForm, 'savecartuser');
});