link_to与rails中的jquery params

前端之家收集整理的这篇文章主要介绍了link_to与rails中的jquery params前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在我的rails应用程序中进行就地搜索.
我使用了button_to_remote和原型,但现在我正在使用JQuery,所以我改为link_to.
这是我的代码
<%= link_to "Search",{:action => "geocode",:with => "'address='+$('#{address_helper_id}').value"},:method => :post,:remote => true %>

我想将地址文本字段传递给我的控制器,但输出不是我所期望的.

/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属性中的控制器/地理编码路径.这将有助于您保持ruby和javascript更加分离.

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

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

这实际上是将点击事件监听器绑定到您的搜索按钮,该按钮将地址发布到搜索链接的data-href属性中提供的URL或路径.

我还注意到在你的代码中,你在ruby中设置了源地址的id.如果此id属性需要根据某种页面模板条件进行更改,则可以通过向链接添加其他数据参数来扩展我的示例.例如:

<%= link_to "Search",:"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相关文章