我正在尝试使用动态生成的输入创建打印表单。 稍后将在PreviewDiv中显示这些字段的内容。 只要我指定它们应该在哪里,它就可以正常工作,例如:
$('#Prw_CapacityA_1').text($('#CapacityA_1').val());
$('#Prw_CapacityB_1').text($('#CapacityB_1').val());
$('#Prw_CapacityC_1').text($('#CapacityC_1').val());
但是如果用户创建了100个字段,那么编写的代码就会很多。 必须有其他方法来动态修复此问题,例如:
$('#Prw_CapacityA_'+ counter).text($('#CapacityA_'+ counter).val());
答案 0 :(得分:1)
您可以尝试使用attribute starts with selector选择以特定ID开头的元素,然后使用each()函数循环播放它们。
您的预览表中无需使用html。您可以在用户单击预览时生成它。已修改fiddle
$('#PreviewButton').click(function(){
var capB = $('td input[id^=CapacityB_]');
var capC = $('td input[id^=CapacityC_]');
var table = $("#AddFieldsToPreviewDiv");
table.empty(); //build table everytime user previews so that previously appended values are removed
table.append('<tr><td>ID</td><td>Text 1</td><td>Text 2</td><td>Text 3</td></tr>');
$('td input[id^=CapacityA_]').each(function(i){
table.append('<tr><td>#'+(i + 1)
+'</td><td>'+$(this).val()
+'</td><td>'+$(capB[i]).val()
+'</td><td>'+$(capC[i]).val()
+'</td></tr>');
});
// Show PreviewDiv and hide FormDiv if PreviewButton clicked
$('#PreviewDiv').show();
$('#FormDiv').hide();
});
答案 1 :(得分:0)
您可以尝试给他们一个独特的课程(通常我建议使用ID,但您使用的是一个)说一类“getinfo”
然后你可以试试.each()函数
$( ".getinfo" ).each(function( index ) {
var text = $(this).val();
alert(text);
});
这将为它使用类'getinfo'找到的每个元素创建一个警告框,然后检索该值并显示它,我希望这会给你一个更好的主意。
如果输入量可以从一个页面加载更改为下一个页面加载,那么您需要使用循环,而不是通过“手”拉动所有值,更多代码将有助于更好地理解您要实现的目标和来自 what 。