2017-10-10 6 views
0

ユーザーがリンクをクリックすると(フォーム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'); 
    }); 
}); 

答えて

0

私はあなたのHTMLを見ることができないが、しかしyour'reフォームを削除する場合は作成フォーム内、私はセレクタが間違っていると思う、そうではありませんイベントがトリガーされることはありません。あなたの削除ボタンはtype="submit"だと思いますので、htmlを送信してください。あなたは、スペースを削除する必要があります...

$('.panel-heading').on('submit','form#deleteForm',function(event) { 
.... 

私はそれが

を役に立てば幸い
関連する問題