假设我的表单上有一个按钮,它没有提交表单,但它基本上是为了获取更多信息:
<%= f.button '', class:'hidden', id: 'do_calculation', remote: true %>
如何绑定它以便在单击它时调用控制器操作并返回数据?
我应该在同一页上有这样的东西吗?
<script>
function calculate_close() {
var id = '<%= @thing.id %>';
$.ajax({
url: "<%= calculate_path %>",
data: {
id: id
},
dataType: "script"
})
}
</script>
答案 0 :(得分:0)
在这里,您可以创建一个html按钮,而无需使用表单构建器,如。
<button id="do_calculation">Button</button>
然后,您可以将click事件绑定到该按钮,并在该事件中调用ajax,如:
$("#do_calculation").on('click', function(){
var id = '<%= @thing.id %>';
$.ajax({
url: "<%= calculate_path %>",
data: {
id: id
},
dataType: "json"
})
})
在控制器中你可以使用类似的东西:
respond_to do |format|
format.json { render :json => {:message => "success"} }
end
希望这会有所帮助!