因此,这个railscast中的以下代码可以动态添加嵌套模型表单的字段:
这是在应用程序助手中:
def link_to_add_fields(name, f, association)
new_object = f.object.class.reflect_on_association(association).klass.new
fields = f.fields_for(association, new_object, :child_index => "new_#{association}") do |builder|
render(association.to_s.singularize + "_fields", :f => builder)
end
link_to_function(name, h("add_fields(this, '#{association}', '#{escape_javascript(fields)}')"))
end
这是javascript函数:
function add_fields(link, association, content) {
var new_id = new Date().getTime();
var regexp = new RegExp("new_" + association, "g")
$(link).parent().before(content.replace(regexp, new_id));
}
现在我很好奇你将如何更改所有这些代码,以便你可以完全依赖于JQuery而没有原型或rjs。
答案 0 :(得分:0)
这里唯一与Prototype相关的是link_to_function
调用。它的作用是在调用onclick
函数的name
文字上创建add_fields
处理程序。
因此,要成为纯jquery,您应该使用$().click (function (){...})
方法。但是,确切的实现方式会有所不同,具体取决于您是要在html文件中插入javascript还是不引人注意地调用它。