私は、ajax経由でフォームを送信するJQueryプラグインを作成しました。それはうまくいっていた。私はいずれかのボタンをクリックすると、フォームが二回提出されjqueryプラグインを同じページの2つのボタンに別々に適用する
<form>
<input type="submit" id="CreateAndExit" value="Create and Exit" />
<input type="submit" id="CreateAndAdd" value="Create and Add Another" />
</form>
$('#CreateAndExit').Save(optionsA);
$('#CreateAndAdd').Save(optionsB);
below-として2つが同じフォーム上のボタンを提出使用しようとするが、問題が発生します。 beforeSendFunction()
のボタンの変更は、他のボタンにも適用されます。この問題を克服する方法
(function ($) {
$.fn.Save = function (options,validationRules, onBeforeSend, onSuccess, onError, onComplete) {
return this.each(function() {
var $This = $(this);
var settings = $.extend({
.....
}, options);
var $Form;
if (settings.form == "" || settings.form == "form") {
$Form = $This.parents('form');
}
else {
$Form = $(settings.form);
}
$This.on('click', function (event) {
$Form.submit();
});
$Form.on('submit', function (event) { .... });
function beforeSendFunction() {
$This.val('Working…');
$This.attr('disabled', 'disabled');
}
});
};
}(jQuery));
- ここ
は私のプラグインの構造(不要な行を削除している)のですか?
idが既に定義されているときにクリックイベントを使用できるのと同じフォームに2つの送信ボタンがあると思いました... – user7417866
送信イベントハンドラですでに 'preventDefault()'を呼び出していますか? – JakeParis