我在rails app中有以下coffeescript功能
if $(".my-form").length
$(".my-form").submit (event) ->
values = {}
$.each $(this).serializeArray(), (i, field) ->
values[field.name] = field.value
return
console.log(values)
控制台显示,在表单提交时,此功能正在运行4次。
Object {utf8: "✓", my_form[my_field]: "my_value"}
Object {utf8: "✓", my_form[my_field]: "my_value"}
Object {utf8: "✓", my_form[my_field]: "my_value"}
Object {utf8: "✓", my_form[my_field]: "my_value"}
据我所知,没有其他代码可以与此表单进行交互。是否有一个明显的原因,为什么这个功能会多次运行?我应该寻找什么来调试这个?我该怎么做才能防止这种情况发生?
答案 0 :(得分:0)
感谢Shaunak D的回答。
鼠标单击表单提交按钮似乎多次调用.submit()
处理程序。
unbind("submit")
会阻止这种情况(只要在正确的地方调用它!)
正确的语法是:
$(".my-form").unbind('submit').bind 'submit', (event) ->
#actions....