我有一个搜索表单,我想拥有"最后搜索的值"当用户提交搜索时预先弹出字段(搜索表单和结果在同一页面上)。如果之前没有搜索,则字段具有占位符值。
搜索字段
<%= 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,所以如果这不是最佳实践,我会很感激你正确的方向,谢谢你。
答案 0 :(得分:-1)
实际应该以不同的方式工作。由于所有http都是请求 - 响应周期,因此要在控制器中使用新的search_zip
,您需要向Web服务器发送请求。你可以这样做:
function prePopSearchForm(){
window.location.search = 'search_zip=' + $(".search_zip").val();
}
但更好的方法是实际提交包含所有字段的表单:
function prePopSearchForm(){
$(".search_zip").closest('form').submit();
}