pas*_*ine 8 search jquery ruby-on-rails in-place link-to
我想在我的rails应用程序中进行就地搜索.
我使用了button_to_remote和原型,但现在我正在使用JQuery,所以我改为link_to.
这是我的代码:
<%= link_to "Search", {:action => "geocode", :with => "'address='+$('#{address_helper_id}').value"}, :method => :post, :remote => true %>
Run Code Online (Sandbox Code Playgroud)
我想将地址文本字段传递给我的控制器,但输出不是我所期望的.
/mycontroller/geocode?with=%27address%3D%27%2B%24%28%27record_location___address%27%29.value
Run Code Online (Sandbox Code Playgroud)
我如何提交我的价值?
the*_*RON 15
您可能想尝试更不引人注意地接近事物.我建议用以下内容替换你的link_to
电话:
<%= link_to "Search", "#", :id => "search_geocode", :"data-href" => my_controller_geocode_path %>
Run Code Online (Sandbox Code Playgroud)
这实际上与您已有的相同,只是它包含唯一的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){} );
});
Run Code Online (Sandbox Code Playgroud)
这实际上是将click
事件监听器绑定到您的搜索按钮,该按钮将地址发布到data-href
搜索链接属性中提供的URL或路径.
我还注意到在你的代码中,你id
在ruby中设置了源地址.如果此id
属性需要根据某种页面模板条件进行更改,则可以通过向data-
链接添加其他参数来扩展我的示例.例如:
<%= link_to "Search", "#", :id => "search_geocode", :"data-href" => my_controller_geocode_path, :"data-address-id" => address_helper_id %>
Run Code Online (Sandbox Code Playgroud)
再次,用以下内容application.js
替换上面的内容:
$('#search_geocode').live('click', function(event){
event.preventDefault();
$.post($(this).attr('data-href') + "?address=" + $($(this).attr('data-address-id')).val(), function(data){} );
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14351 次 |
最近记录: |