使用JavaScript替换rails param值

时间:2016-10-02 13:52:14

标签: javascript jquery ruby-on-rails

我有一个搜索表单,我想拥有"最后搜索的值"当用户提交搜索时预先弹出字段(搜索表单和结果在同一页面上)。如果之前没有搜索,则字段具有占位符值。

搜索字段

<%= text_field_tag(:search_zip, nil, placeholder: " Zip Code", class: "common_search_field search_zip", onkeypress: "return isNumber(event);", maxlength: "5", required: true, value: params[:search_zip]) %>

提交按钮

<%= submit_tag("Search", class: "search_submit_btn", onclick: "prePopSearchForm();") %>

的JavaScript

  function prePopSearchForm(){
    "<%= params[:search_zip] %>" = $(".search_zip").val();
  }

问题是params[:search_zip]将原始params[:search_zip]值保存在:search_zip表单字段中。我想在单击提交按钮时获取当前值,并将其指定为params[:search_zip]值。我是Rails&amp;的新手JavaScript,所以如果这不是最佳实践,我会很感激你正确的方向,谢谢你。

1 个答案:

答案 0 :(得分:-1)

实际应该以不同的方式工作。由于所有http都是请求 - 响应周期,因此要在控制器中使用新的search_zip,您需要向Web服务器发送请求。你可以这样做:

function prePopSearchForm(){
  window.location.search = 'search_zip=' + $(".search_zip").val();
}

但更好的方法是实际提交包含所有字段的表单:

function prePopSearchForm(){
  $(".search_zip").closest('form').submit();
}