所以我有一个附加一组表单字段的脚本。每次用户附加表单时,我都会将其设置为自动增加一个数字,并将其添加到所有表单字段ID的末尾。这很好用。我还在每个表单中都有一个复选框,如果单击它,则复制数据。现在我只为每个数字增量编写一个单独的脚本,例如:
$(document).on('click', '.same-1', function(){
if($(this).is(':checked')){
$('#baddress1-1').val( $('#street1').val() );
$('#baddress2-1').val( $('#street2').val() );
$('#bcity-1').val( $('#city').val() );
$('#bstate-1').val( $('#state').val() );
$('#bzip-1').val( $('#zip').val() );
}
});
因此,例如“same-1”匹配#baddress1-1,其中“-1”是数字的增量。有没有办法说jquery'.same- [递增的数字],#bzip- [递增的数字]等等,所以我只需要编写一次脚本?
答案 0 :(得分:0)
您可能希望将计数器变量存储在if
语句范围之外。
$(document).on('click', '.same-1', function(){
// this will auto increment
var counter = 0;
if($(this).is(':checked')){
// incrementing
counter++;
// just use concatenation to target the right one automagically
$('#baddress1-' + counter).val( $('#street1').val() );
$('#baddress2-' + counter).val( $('#street2').val() );
$('#bcity-' + counter).val( $('#city').val() );
$('#bstate-' + counter).val( $('#state').val() );
$('#bzip-' + counter).val( $('#zip').val() );
}
});