gpt4 book ai didi

jquery - Rails 中带有 jquery params 的 link_to

转载 作者:行者123 更新时间:2023-12-03 22:29:51 25 4
gpt4 key购买 nike

我想在我的 Rails 应用中进行就地搜索。
我使用了带有原型(prototype)的button_to_remote,但现在我使用的是JQuery,所以我更改为link_to。
这是我的代码:

<%= link_to "Search", {:action => "geocode", :with => "'address='+$('#{address_helper_id}').value"}, :method => :post, :remote => true %>

我想将地址文本字段传递到我的 Controller ,但输出不是我所期望的。

/mycontroller/geocode?with=%27address%3D%27%2B%24%28%27record_location___address%27%29.value

我如何提交我的值?

最佳答案

您可能想尝试以更低调的方式处理事情。我建议将您的 link_to 调用替换为以下内容:

<%= link_to "Search", "#", :id => "search_geocode", :"data-href" => my_controller_geocode_path %>

这实际上与您已有的相同,只是它包含唯一的 ID,以及 data-href 属性中的 Controller /地理代码路径。这将有助于让您的 ruby​​ 和 javascript 更加分离。

然后在您的 application.js (或类似的地方):

$('#search_geocode').live('click', function(event){
event.preventDefault();
$.post($(this).attr('data-href') + "?address=" + $('#address').val(), function(data){} );
});

这实际上是将一个 click 事件监听器绑定(bind)到您的搜索按钮,该按钮将地址发布到 data-href 属性中提供的 url 或路径您的搜索链接。

我还注意到,在您的代码中,您正在 ruby​​ 中设置源地址的 id。如果此 id 属性需要根据某种页面模板条件进行更改,您可以通过向链接添加另一个 data- 参数来扩展我的示例。例如:

<%= link_to "Search", "#", :id => "search_geocode", :"data-href" => my_controller_geocode_path, :"data-address-id" => address_helper_id %>

再次,在 application.js 中将上面的内容替换为以下内容:

$('#search_geocode').live('click', function(event){
event.preventDefault();
$.post($(this).attr('data-href') + "?address=" + $($(this).attr('data-address-id')).val(), function(data){} );
});

关于jquery - Rails 中带有 jquery params 的 link_to,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4292508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com