我有数字字段和相关的空div。我可以使用一个代码来执行此操作:当您增加或减少数字字段内的数字时,新的div插入空div后。 1在数字字段1新div,2在数字字段1新div 2总div,3在数字字段1新div 3总div。等等。
现在我的代码正在创建一个新的空div,其中包含任何内容。但我想要的是在新div中使用ruby partial创建新的div。
这是一个演示:
这是我在js.erb文件中尝试的内容
$(document).ready(function() {
$('.product-quantity').each(function() {
$(this).data('val', this.value);
}).on('change', function () {
var val = $(this).val(),
old = $(this).data('val'),
ele = $(this).closest('[id^="product"]').find
('[data-size="'+this.name+'"]'),
inc = val >= old;
if (inc) {
$('<div/>', {
'class': 'name-number-field', 'text':'<%= render :partial =>
'name_number_field', :locals => {:product => product, :size => size} %>'
}).insertAfter(ele);
}else {
$('div.name-number-field', ele.parent()).last().remove();
}
$(this).data('val', this.value);
});
});
答案 0 :(得分:0)
我不知道如何,但我有一个想法 gem'cocoon'完全符合您的要求(使用JS渲染部分),但它需要在模型上进行关联 假设你没有模型关联,你只想插入部分内容,我建议你研究一下cocoon实现的想法和方法
https://github.com/nathanvda/cocoon/blob/master/lib/cocoon/view_helpers.rb https://github.com/nathanvda/cocoon/blob/master/app/assets/javascripts/cocoon.js
答案 1 :(得分:0)
您可以在js.erb文件中执行此操作:
$('#yourDiv').html('<%= escape_javascript( render :partial => "name_number_field", :locals => { :product => product, :size => size } )%>');