我有一個表單,其中使用jquery動態添加或刪除字段。 (railscast#7分之196)基於動態表單域的數量求和值
在我的使用情況下,我期待在購買形態,所以我想先談一個的默認數量,以1爲每個link_to_add_fields
提交和對面的link_to_remove_fields
遞增提交,所以我可以在最後得到我的總價,即quantity x @event.price
。
所以,如果我有3 link_to_add_fields
和2 link_to_remove_fields
,這將是
# 1 is default, 3 is link_to_add_fields, 2 is link_to_remove_fields
(1 + (3 - 2)) x @event.price
# or
2 x @event.price
我的jQuery的知識非常少,所以我希望能有一個解決方案紅寶石如果可能的話,
的感謝!
應用助手
def link_to_remove_fields(name, f)
f.hidden_field(:_destroy) + link_to_function(name, "remove_fields(this)")
end
end
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, "add_fields(this, '#{association}', '#{escape_javascript(fields)}')")
end
的application.js
function remove_fields(link) {
$(link).prev("input[type=hidden]").val("1");
$(link).closest(".fields").hide();
}
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));
}
謝謝@iWasRobbed! –