0

オブジェクトを更新するフォームがあります。

= form_tag (..., method: :put) do

HTMLに表示されますmethod="post"が、フォームは。を使用して正しく送信されPUTます。ボタングループの選択に基づいて非表示フィールドの値を変更しようとすると、次のようになります。

  $('#form .btn-group button').click(function(e) {
    $('#form input[type=hidden]').val($(this).data('value'));
  });

フォームはを使用して送信されPOST、404が返されます。何かを壊していると思いjquery_ujsますが、数日経ちましたが、まだ手がかりがありません。JavaScriptエラーは発生せず、非表示フィールドの値は正しく変更されます。

4

2 に答える 2

2

$('#form input[type=hidden]')すべての非表示フィールドに影響を与えないように、これをより正確なセレクターに変更してみてください。非表示フィールドにクラスを追加します。問題を引き起こす可能性のあるすべての非表示フィールドをオーバーライドしている可能性があります。

于 2013-03-18T15:38:43.523 に答える
2

これはmethod: put、次のようなフォームの非表示フィールドを作成するためです。

<input name="_method" type="hidden" value="put">

divレールが要素のすぐ下に挿入されていることを確認しformます。

これが、アプリケーションがそれをPOSTではなくPUTリクエストとして認識する方法です-このフォームパラメータの値によって。したがって、jsで行うようにすべての非表示フィールドを変更すると、フォームが壊れます。

于 2013-03-18T15:39:00.350 に答える