【问题标题】:Do not include hidden field in query string when submitting form with GET使用 GET 提交表单时,不要在查询字符串中包含隐藏字段
【发布时间】:2011-08-11 09:14:56
【问题描述】:
http://localhost:3000/users?utf8=%E2%9C%93&search=aen

这是我在视图中的表单:

<% form_tag users_path, :method => 'get', :html => { :class => 'ui-form' } do %>
    <div class="ui-input ui-input-search">
      <%= text_field_tag :search %>
    </div>
  <% end %>

这会生成一个被提交的隐藏字段:

<div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓"></div>

【问题讨论】:

标签: javascript ruby-on-rails ruby ruby-on-rails-3 forms


【解决方案1】:

如果您使用 form.serialize() 删除不必要的参数部分并使用新参数发出新的 get 请求,则可以使用 JS 完成此操作

【讨论】:

    【解决方案2】:

    在您不想提交的字段上设置disabled 属性。

    或者真正的问题是如何让rails不首先创建隐藏字段?

    【讨论】:

      【解决方案3】:

      您可以尝试在 onsubmit 函数中执行类似的操作:

      document.getElementsByName('utf8')[0].disabled = "disabled";
      

      防止它被发送。

      【讨论】:

        【解决方案4】:

        这是一个 jquery sn-p - 将其添加到您的布局中以禁用所有 GET 表单中的 utf8 字段

        :javascript
              $('form[method=get] input[name=utf8]').attr("disabled", "disabled");
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-12-11
          • 1970-01-01
          • 1970-01-01
          • 2010-11-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多