使用GET提交表单时,不要在查询字符串中包含隐藏字段

时间:2011-04-23 06:38:12

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

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>

4 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您可以尝试在onsubmit函数中执行以下操作:

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

以防止它被发送。

答案 3 :(得分:0)

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

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