ユーザーがリンクをクリックすると(フォームinitでブートストラップModalを使用しています)、新しいレコードの送信が作成されてページに追加されますすべてjqueryとajaxで)。preventDefaultはあるフォームでは動作しますが、同じモーダルでは他のフォームでは動作しません
ユーザーが新しく追加したアイテムをクリックすると、同じフォームが開き、ajaxがデータを取得してフォームをあらかじめ入力します。しかし、今回はjqueryもDeleteボタンを使って新しいフォームを作成します。
しかし、私が[削除]ボタンをクリックすると、フォームはフル(非ajax)リクエストを行い、アイテムは削除されます。
作成アクションのpreventDefaultが機能する理由(完全なPOST要求を行うためにフォームを停止する)がわかりませんが、削除ボタン/フォームをクリックすると完全な要求が行われます。
両方のイベントハンドラは、同じ匿名関数にあります。 以下はイベントSubmitを扱うjQueryの/ JavaScriptのである:
// save form
form.on('submit',function(e){
e.preventDefault();
$.when(submitAjaxRequest(this)).then(function(data, textStatus, jqXHR){
if(update){
$this.replaceWith(data)
}else{
addInput($this,data);
}
modal.modal('hide');
});
});
// delete form
$('.panel-heading').on('submit','form #deleteForm',function(event){
event.preventDefault();
$.when(submitAjaxRequest(this)).then(function(data, textStatus, jqXHR){
$this.remove();
modal.modal('hide');
});
});