Rails:控制器呈现操作时如何运行javascript
为了便于讨论,我们有“新产品”表格 我为html表单元素使用了一些javascript库(例如icheck、select2、wysihtml5)。在呈现HTML页面之前,这些表单元素需要与其相关联的js库函数一起运行才能正确显示(例如,Rails:控制器呈现操作时如何运行javascript,javascript,jquery,html,ruby-on-rails,forms,Javascript,Jquery,Html,Ruby On Rails,Forms,为了便于讨论,我们有“新产品”表格 我为html表单元素使用了一些javascript库(例如icheck、select2、wysihtml5)。在呈现HTML页面之前,这些表单元素需要与其相关联的js库函数一起运行才能正确显示(例如,$(“.checkbox”).iCheck({…}) 如果在提交表单时出现验证错误,Rails会将操作“新建””呈现给有错误的reshow“新产品””表单(正好在“产品控制器”中的“创建””方法中) 问题是Rails在这种情况下不会再次执行相关的javascrip
$(“.checkbox”).iCheck({…}
)
如果在提交表单时出现验证错误,Rails会将操作“新建””呈现给有错误的reshow“新产品””表单(正好在“产品控制器”中的“创建””方法中)
问题是Rails在这种情况下不会再次执行相关的javascript文件(例如products.js.coffee)。然后,基于javascript的html表单元素无法正常显示(因为$(“.checkbox”).iCheck({…})
不会执行)
我如何解决这个问题 这可能是turbolinks的问题。查看
jquery turbolinks
gem,或尝试以下操作:
ready = ->
...your coffeescript goes here...
$(document).ready(ready)
$(document).on('page:load', ready)
您也可以尝试禁用turbolinks,看看是否确实存在问题。我刚刚发现我的问题是因为Paloma Gem。但根据我的问题,你的回答仍然完全“正确”。