私は単純な検証を行う関数を持っています。すべての入力テキストがempytならば警告がポップアップし、プログラムは停止します。ボタンをクリックすると機能が起動します。私はすでにイベントを渡していますが、どういうわけかevent.PreventDefault()は動作していないので、サーバーサイドのコードにアクセスしています。 以下に簡単な検証を行う機能を示します。トリガの events.prevendefault()はeach()関数を持つ関数の中で動作しません
var checkRequired = function(event)
$('.box-load .requir').each(function(index,item) {
var index = $(item).data('index');
if(index === 'text') {
if ($(item).val() == "") {
$(this).focus();
alert('Please input the required parameter');
event.preventDefault();
}
}
});
}
私はこのコードを使用して機能
:checkRequired()ベロー$(document).on('click','.box-load .btn-save', function(event) {
event.preventDefault();
checkRequired(event);
は、私は、Ajaxリクエストを行うつもりです。私が欲しいのは、入力テキストの1つが空の場合、イベントは停止です。しかし、そのコードでは、動作していません。なにか提案を?
ありがとうございます。
booleanを返すように 'checkRequired()'を変更し、クリックハンドラのテストで戻り値を返し、Ajaxが動作すればそれを行います。あなたのクリックハンドラで既に 'event.preventDefault()'を呼び出していて、 '.preventDefault()'も何もしていないので、 'checkRequired()'の中に 'event.preventDefault()'を入れても意味がありませんAjaxコードを停止すると、クリックされたボタンのデフォルト(非JS)の振る舞いだけが阻止されます。 – nnnnnn
はボタンのようなもので、送信ボタンのようなものです。したがって、最初の 'event.preventDefault'はうまくいくはずです。フォーム提出のためにサーバーサイドコードが実行されているかどうかを知る上で、何か不思議なことがありますか? –