我有一个结帐表单,该表单具有用于位置的选择字段,该表单调用一个自定义操作,该操作通过javascript以正确的投放量更新页面。
=link_to 'Update delivery', store_orders_delivery_path(?????),
method: 'POST', remote: :true
该表格有一个“位置”字段
= f.select :location, ["country1","country2","country3"]
如何在我的link_to中将所选位置作为参数发送?
最佳答案
我了解您的问题的方式是:
您有一个表单,该表单在提交时会做一些事情。在此表单内,您需要一个链接,该链接将从该表单发送一个字段到另一个动作,并获得一些js作为更新表单的响应。
如果是这样,正确的方法是在更改选定位置时发送ajax请求。然后,无需链接,您将创建更好的用户体验。从事件处理程序中,您可以轻松访问所选值并将其与请求一起发送。
更新:
简而言之,我会做的事情:
摆脱这个链接。
使用javascript(建议使用CoffeScript)为此选择字段创建事件处理程序(jQuery:$('#<modelname>_location').change(function() {handler here})
)
在处理程序内部,从字段(selected_value = $(this).find('option:selected').val()
)获取值(或最后的value(),总是把这两个弄乱了)
通过js和selected_value一起发送ajax请求。 (http://api.jquery.com/jQuery.ajax/)
这不是编写很多代码,但是应该做您想做的事情+它可以节省用户一键操作(他可能没有意识到这是必需的,会引起困惑等)。