【发布时间】:2014-09-25 16:10:44
【问题描述】:
我正在创建一个表单,用户可以在其中添加许多嵌套问题,每个问题可以有许多嵌套答案,其他字段具有 ActiveRecord 验证器,当它们失败时,页面会重新加载,插入的字段仍然存在。
所有回调(例如cocoon:before-insert)都不会重新加载,例如插入对象的下拉列表的更改处理程序
如果在服务器端验证器上重新加载页面失败,我该怎么做才能使这些回调得到尊重?
另一方面,在代码质量方面,将在 cocoon 回调中创建的处理程序添加到调用控制器上的 new 方法时构建的嵌套对象的最佳方法是什么(即不受插入后/插入前回调)?
这里有一些用于澄清的示例咖啡脚本代码:
$(document).ready ->
$('#questions').on("cocoon:after-insert", (e, added_question) ->
added_question.find('#type').change ->
if $(this).val() is "1"
added_question.find("#answers").hide()
else
added_question.find("#answers").show()
编辑:更改问题,因为删除问题是缺少适当的包装类
编辑#2:添加示例代码
【问题讨论】:
-
如何定义回调处理?在文档就绪事件中?你能显示一些代码吗?你在用 Rails 4 吗?
-
是的,它在文档就绪事件中,我已经添加了一些澄清的代码,发生的情况是 div #type 上的更改处理程序不再绑定到对象,是的,使用 rails 4.0.1