在我看来(/app/view/media/index.html.erb),我有一个ajax函数和一个form_tags: 我的AJAX功能:
<script type="text/javascript" charset="utf-8">
$(document).ready(
function () {
$("#my_ajax").bind("ajax:success",
function (evt, data, status, xhr) {
console.log(data);
}
).bind("ajax:error", function (evt, data, status, xhr) {
console.log("doh!")
});
});
</script>
<%= form_tag '/delete_media', method: :delete do %>
<%= submit_tag 'Delete', class: 'btn btn-danger', disabled:@media_contents.empty? , :remote => true, :id => "my_ajax" %>
我们的目标:当我在提交后收到服务器的响应时,将运行my_ajax函数 怎么做 ???我无法触发“my_ajax”功能?我总是从服务器
获得JSON响应修改:
我的控制器:
def delete_media
@medias=Media.where(id: params[:media_contents]).destroy_all
render json: @medias
end
答案 0 :(得分:0)
也许尝试这样的事情:
<script>
$(document).ready(function(){
$("#my_ajax").on('ajax:success', function(e, data, status, xhr){
console.log(data);
}).on('ajax:error',function(e, xhr, status, error){
console.log('doh!')
});
});
</script>
答案 1 :(得分:0)
你不应该像那样写js句柄ajax 在rails中实现ajax的正确方法是:
在/app/view/media/index.html.erb中:
form_tag ..., remote: true
在媒体控制器中:
def destroy
# do your job
respond_to do |format|
format.js {}
end
end
在/app/view/media/destroy.js.erb:
// your js handle code
更多信息:http://guides.rubyonrails.org/working_with_javascript_in_rails.html