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

这就是应用程序将其识别为 PUT 请求而不是 POST 的方式 - 通过此表单参数的值。因此,像在 js 中那样修改所有隐藏字段会破坏表单。

于 2013-03-18T15:39:00.350 回答