当我使用JQuery提交我的GET表单时如何更改查询字符串?

假设我的页面中有一个简单的表单,如下所示:

 

当我提交表单时,我有以下url:

HTTP://…/properties/search MIN_PRICE = 100000&MAX_PRICE = 200000

我想更改此url:

HTTP://…/properties/search价格= 100000,200000

为此,我使用JQuery和JQuery查询字符串插件 :

 $(document).ready(function() { $("#form_search").submit(function() { var querystring = rewrite_interval_qstring(); // querystring equals "?price=100000,200000" -> exactly what I want ! // ??? }); }); 

如何更改(评论“???”)提交url? 我已单独测试了以下说明,但它不起作用。

 window.location = querystring; window.location.href = querystring; window.location.search = querystring; 

您需要阻止发生默认提交操作

 $(document).ready(function() { $("#form_search").submit(function(event) { event.preventDefault(); // <-- add this var querystring = rewrite_interval_qstring(); // querystring equals "?price=100000,200000" -> exactly what I want ! window.location.href = querystring; // <-- this should work. }); }); 

你快到了。 拦截提交事件(正如您所做),提取最小值和最大值,构建您的URL并设置window.location.href

 $(document).ready(function() { $("#form_search").submit(function(event) { event.preventDefault(); $this = $(this); // var url = rewrite_interval_qstring(); var min_price = $('#min_price').val(); var max_price = $('#max_price').val(); var url = $this.attr('action') + '?price=' + min_price + ',' + max_price; window.location.href = url; }); }); 

Rob Cowie的回答是一种方法。 另一个是添加一个名为“price”的隐藏字段,并在使用您想要的值提交之前填充它。