从Rails 3.1中的select_tag
中选择(更改)一个选项后,我想发送一个AJAX请求。我们可以使用:remote=>true
或:onchange => remote_function()
还是有其他方法?Rails select_tag - 如何发送ajax请求?
回答
你一定要用jQuery来做到这一点(使用不显眼的方法来尽可能保持干净)。在你的js文件,你应该有这样的事情......
$('#select_tag_id').change(function(){
$ajax({
url: "remote_action_in_your_controller",
type: "GET",
data: {select_tag_value: $('#select_tag_id option:selected').text()},
})
});
这是简单,因为它应该是,如果你只是想打电话给你的控制器上的远程操作(请注意,我通过选择价值选项,因为你可能想要这个值做一些事情)。如果在执行ajax调用之后需要执行某些操作,请使用succes
选项。希望这可以帮助。
你必须用JQuery来做到这一点。事情是这样的,当文件已准备就绪,:
$('#your_select_tag').change(function() {
$.ajax({ type: "GET",
url: "http://your_url/",
success : function(text) {
alert('success')
}
});
});
看到该文档:http://api.jquery.com/change/和http://api.jquery.com/jQuery.ajax/。
我想运行一个动作,它通过ajax发送的数据执行一些计算,然后在同一页面上渲染一个局部视图。这怎么可以在这里完成? – 2012-07-25 14:31:56
您可以在更改功能中进行计算。之后,你可以创建一个app/views/controllers/action.js.erb,你可以在你的文件中做你想做的。这里有一个例子:http://stackoverflow.com/questions/300498/how-do-i-include-html-in-a-js-rails-response。 – Dougui 2012-07-25 14:46:54
对不起,我想我可能不清楚。我想从select_tag中选择选项(比如'foo')给我的控制器动作,它会查找数据库中'foo'的细节,将它们存储在映射中,然后同一控制器动作将呈现一部分显示地图上的细节。这如何实现? – 2012-07-25 15:14:27
remote: true
将data-remote="true"
添加到html元素。只需将其添加为select_tag
选项中的CSS类即可。
<%= select '', '', @coaches, {}, { data: {remote: true } } %>
请注意data: { remote: true }
被使用,因为"data-remote"
不红宝石友好。
- 1. Ajax Put请求Select_tag
- 2. Rails,select_tag,:onchange =>不是ajax请求
- 3. 如何发送ajax请求
- 4. Rails和jQuery发送Ajax请求
- 5. 发送ajax请求
- 6. 发送Ajax请求
- 7. 如何发送多个Ajax请求?
- 8. 如何在OOP中发送AJAX请求?
- 9. 如何发送Ajax请求,使用HttpClient
- 10. 如何在ajax请求上发送javascript?
- 11. AJAX请求不发送请求
- 12. 如何在rails中发送URL请求?
- 13. 如何通过AJAX发送对Ruby on Rails的请求
- 14. jquery ajax请求发送之前发送
- 15. 发送AJAX获取请求
- 16. JQuery .ajax不发送请求
- 17. 发送Ajax请求到Django
- 18. Typehead.js不发送ajax请求
- 19. Ajax请求不被发送
- 20. 未发送jQuery AJAX请求
- 21. AJAX不发送请求
- 22. 定期发送ajax请求
- 23. jQuery ajax不发送请求
- 24. AJAX发送请求两次
- 25. 发送的jQuery Ajax请求
- 26. 发送Rails中POST请求
- 27. 发送请求到Rails API?
- 28. 如何从jQuery发送ajax请求请求
- 29. rails ajax请求
- 30. Rails Ajax请求
我想运行一个动作,它通过ajax发送的数据执行一些计算,然后在同一页上渲染一个局部视图。这怎么可以在这里完成? – 2012-07-25 14:31:30
应该是'$ .ajax' – 2016-06-17 17:41:43