sut*_*tee 5 prototype ruby-on-rails onclick form-for link-to-function
如何附加onclick事件,link_to_function以便单击事件刷新页面上的元素(使用partials)?
当用户单击生成的链接时,我想刷新包含代码的部分,以便i更新.
def add_step_link(form_builder)
logger.info 'ADD_STEP_LINK'
link_to_function 'add a step' do |page|
form_builder.fields_for :steps, Step.new, :child_index => 'NEW_RECORD' do |f|
logger.info 'inserted js'
html = render(:partial => 'step', :locals => { :step_form => f, :i=>@i+=1})
page << "$('steps').insert({ bottom: '#{escape_javascript(html)}'.replace(/NEW_RECORD/g, new Date().getTime()) });"
end
end
end
Run Code Online (Sandbox Code Playgroud)
我有一个更大的形式,只包含:
<%= add_step_link(technique_form) %>
Run Code Online (Sandbox Code Playgroud)
我正在尝试跟踪技术中的步骤数.在我创建的表单中,用户可以向一组指令添加新步骤.现在,我有步骤1-7的默认字段.添加一步,让您步骤8.问题是后续步骤也编号为'8'.
为了我自己的目的,我正在http://railsforum.com/viewtopic.php?id=28447中扩展"动态形式的多个子模型"教程.
好吧,我对你的工作有点困惑,但我会尝试提出一些建议.
而不是使用link_to_function,请使用link_to_remote.链接到函数调用javascript,但你真正想要做的是回调一个控制器,然后运行一些rjs来替换完整的部分,或者更可能的是,将新的部分(包含步骤)附加到当前的末尾脚步.
这类似于你将看到的那些人们在他们的博客评论的末尾附加评论的例子(期望使用link_to_remote而不是remote_form_for),请参阅http://media.rubyonrails.org/video的 3/4./rails_blog_2.mov
你可以在这里看到link_to_remote的文档:http://api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper.html