Javascript 如何进行Ajax复选框回调
基于“”,我尝试构建一个复选框Ajax POST调用 这个电话似乎起作用了,但我看不到有办法附加回拨 在“”中,您似乎可以通过以下代码执行此操作:Javascript 如何进行Ajax复选框回调,javascript,jquery,ruby-on-rails,ruby,ajax,Javascript,Jquery,Ruby On Rails,Ruby,Ajax,基于“”,我尝试构建一个复选框Ajax POST调用 这个电话似乎起作用了,但我看不到有办法附加回拨 在“”中,您似乎可以通过以下代码执行此操作: $(document).ready -> $("#new_article").on("ajax:success", (e, data, status, xhr) -> $("#new_article").append xhr.responseText ).on "ajax:error", (e, xhr,
$(document).ready ->
$("#new_article").on("ajax:success", (e, data, status, xhr) ->
$("#new_article").append xhr.responseText
).on "ajax:error", (e, xhr, status, error) ->
$("#new_article").append "<p>ERROR</p>"
$(文档).ready->
$(“#新文章”)。关于(“ajax:success”,(e,data,status,xhr)->
$(“#新文章”)。追加xhr.responseText
).on“ajax:error”(e,xhr,status,error)->
$(“#新文章”)。追加“错误”
但这似乎不起作用
当我将其附加到checkbox类时(因此,在成功点击之后,不会触发任何内容,而不是new\u article
)。有什么想法吗?我应该把它附加到别的东西上吗?我查看了代码,没有在复选框周围生成表单
这里有更多的内容似乎支持前面的JavaScript代码是如何工作的,但不起作用 如果您使用的是
remote:true
,则可以使用:
有几件事需要了解:
文档
对象(JQuery只能绑定到使用DOM
加载的元素)远程:true
),则需要将其绑定到发送请求的元素。通常,这是一个表单,但在您的情况下,它是复选框当然,这取决于您通过
rails\u ujs
remote:true
助手发送请求的想法。相反,如果您希望使用“裸”JQuery发送请求,则需要使用:
#view
<%= form_tag ... do %>
<%= check_box_tag :x, "y", id: "check_box" %>
<% end %>
#app/assets/javascripts/application.coffee
$(document).on "change", "#check_box", (e) ->
$.ajax
url: "your/path/as/a/string",
data: $(this).val(),
success: (data) ->
// do something,
error: (data) ->
// do something
#查看
#app/assets/javascripts/application.coffee
$(文档)。在“更改”上,“#复选框”,(e)->
$.ajax
url:“您的/path/as/a/string”,
数据:$(this).val(),
成功:(数据)->
//做点什么,
错误:(数据)->
//做点什么
答案一如既往地棒@RichPeckas,我尝试时它不起作用,但当你回答时,它起作用了!我仍然不知道我做错了什么,但它现在正在进行。还要注意,您需要以JSON格式发送响应。
#app/assets/javascripts/application.coffee
$(document).on("ajax:success", "#check_box", (data, status, xhr) ->
$("#new_article").append xhr.responseText
).on "ajax:error", "#check_box", (e, xhr, status, error) ->
$("#new_article").append "Error"
#view
<%= form_tag ... do %>
<%= check_box_tag :x, "y", id: "check_box" %>
<% end %>
#app/assets/javascripts/application.coffee
$(document).on "change", "#check_box", (e) ->
$.ajax
url: "your/path/as/a/string",
data: $(this).val(),
success: (data) ->
// do something,
error: (data) ->
// do something