3

postフォームがsubmitあります。AJAXの方法で実行したいのですが、ページのURLを変更したくありません。

例えば:

<form action="/countries/change_country" data-ajax="true" method="post">
  <select name="country_code">
    <option value="FR" selected="selected">France</option>
    <option value="DE">Germany</option>
  </select>
  <input type="submit" value="change country" />
</form>

ボタンをクリックするとchange country、フォームはAJAXを介して送信されますが、ページのURLは、HTTP動詞で非常に扱い/countries/change_countryにくいサーバーに存在しないため、ページのURLが変更されます。

changePage()アプリケーション全体でこのデフォルトの動作を変更できることは知っていますが、このフォームのみを非アクティブ化したいと思います。

4

1 に答える 1

2

代わりに、 Javascript/jQueryを介してフォームを送信してください。

最初:デフォルトの送信動作を無効にします

$('#form').on('submit', function (e) {
   if (e.preventDefault) e.preventDefault();
   return false;
});

2番目:jQueryを使用してフォームデータをシリアル化します

var serializedFormData = $('#form').serialize();

3番目:フォームを投稿する$.ajax();

$.ajax({
   url: '/countries/change_country',
   type: 'POST',
   data: serializedFormData
});
于 2013-04-29T12:03:14.537 に答える