Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何防止某些表单字段显示在查询字符串中?_Ruby On Rails_Jquery Ui_Jquery Ui Datepicker - Fatal编程技术网

Ruby on rails 如何防止某些表单字段显示在查询字符串中?

Ruby on rails 如何防止某些表单字段显示在查询字符串中?,ruby-on-rails,jquery-ui,jquery-ui-datepicker,Ruby On Rails,Jquery Ui,Jquery Ui Datepicker,我有一个报告页面的日期范围选择器,它使用jQueryUI的日期选择器。我有两个字段用于开始日期,两个字段用于结束日期: <%= form_tag stats_path, :method => 'get', :id => "date-range" do %> <%= hidden_field_tag :start_date %> <%= text_field_tag :start_date_display %> <%

我有一个报告页面的日期范围选择器,它使用jQueryUI的日期选择器。我有两个字段用于开始日期,两个字段用于结束日期:

  <%= form_tag stats_path, :method => 'get', :id => "date-range" do %>
    <%= hidden_field_tag :start_date %>
    <%= text_field_tag :start_date_display %>
    <%= hidden_field_tag :end_date %>
    <%= text_field_tag :end_date_display %>
    <%= submit_tag "Run it!" %>
  <% end %>
'get',:id=>“日期范围”do%>
目前,正如预期的那样,所有4个字段都作为参数添加到查询字符串中,但我只希望将隐藏字段发送到服务器。文本字段仅用于在用户选择日期时以用户友好的格式显示日期(例如,5月5日)

有没有办法排除他们

我不能使用
:disabled=>true
,这将排除它们,因为这会使控件不可用


(我喜欢在查询字符串中包含日期范围,以便您可以轻松链接到给定范围的报告。)

以下是我使用CoffeeScript解决该问题的方法:

  $('#date-range').submit ->
      $(this).find('input[id*="display"]').each ->
          $(this).remove()
但是@StuR提出的一个更好的解决方案是为
name
属性设置一个空值:

  <%= form_tag stats_path, :method => 'get', :id => "date-range" do %>
    <%= hidden_field_tag :start_date %>
    <%= text_field_tag :start_date_display, '', :name => nil %>
    <%= hidden_field_tag :end_date %>
    <%= text_field_tag :end_date_display, '', :name => nil %>
    <%= submit_tag "Run it!" %>
  <% end %>
'get',:id=>“日期范围”do%>
零%>
零%>

为避免字段随表单一起提交,需要为name属性设置空值。你不能做一些像:name=>“”?@StuR这样的事情吗?这很有效!你能把它作为一个答案,我会接受它吗?这两种解决方案的问题是,这些值不仅会从URL查询字符串(我也在尝试实现)中消失,还会从输入字段中消失。有没有办法在输入字段中保留值,但不在URL中显示它们?