jquery表单克隆
大家好,我试过克隆一个表单,效果很好。我在表单中的所有行中创建一个下拉列表,当选择其中一个选项时,我必须创建一个小框,显示在当前行的正后方。我也这样做了,但真正的问题是,当我添加一个新行(即克隆),然后在我的情况下选择一个选项(即资产),我的小框会很好地显示出来,但在这之后,如果单击“添加行”,则不会添加新行。以下是我的代码和工作演示: 我们将不胜感激jquery表单克隆,jquery,forms,cloning,Jquery,Forms,Cloning,大家好,我试过克隆一个表单,效果很好。我在表单中的所有行中创建一个下拉列表,当选择其中一个选项时,我必须创建一个小框,显示在当前行的正后方。我也这样做了,但真正的问题是,当我添加一个新行(即克隆),然后在我的情况下选择一个选项(即资产),我的小框会很好地显示出来,但在这之后,如果单击“添加行”,则不会添加新行。以下是我的代码和工作演示: 我们将不胜感激 <table id="expense_table" class=""> <thead> <
<table id="expense_table" class="">
<thead>
<tr>
<th>Sl. No</th>
<th>Particulars</th>
<th>Type</th>
<th>Qty</th>
<th>Rate</th>
<th>Amount</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<tr id="row_1">
<td>1</td>
<td>
<input type="text" name="particulars" />
</td>
<td>
<select id="expense_type" name="expense_type" class="exp_type span2">
<option value="">---Select---</option>
<option value="asset">Asset</option>
<option value="non_asset">Non Asset</option>
</select>
</td>
<td>
<input type="text" name="qty" class="input-small" />
</td>
<td>
<input type="text" name="rate" class="input-small" />
</td>
<td>
<input type="text" name="amount" class="input-small" />
</td>
<td>X</td>
</tr>
<tr id="row_2">
<td>2</td>
<td>
<input type="text" name="particulars" />
</td>
<td>
<select id="expense_type" name="expense_type" class="exp_type span2">
<option value="">---Select---</option>
<option value="asset">Asset</option>
<option value="non_asset">Non Asset</option>
</select>
</td>
<td>
<input type="text" name="qty" class="input-small" />
</td>
<td>
<input type="text" name="rate" class="input-small" />
</td>
<td>
<input type="text" name="amount" class="input-small" />
</td>
<td>X</td>
</tr>
<tr id="row_3">
<td>3</td>
<td>
<input type="text" name="particulars" />
</td>
<td>
<select id="expense_type" name="expense_type" class="exp_type span2">
<option value="">---Select---</option>
<option value="asset">Asset</option>
<option value="non_asset">Non Asset</option>
</select>
</td>
<td>
<input type="text" name="qty" class="input-small" />
</td>
<td>
<input type="text" name="rate" class="input-small" />
</td>
<td>
<input type="text" name="amount" class="input-small" />
</td>
<td>X</td>
</tr>
</tbody>
</table>
</div> <span id="add">Add Row</span>
序号
详情
类型
数量
比率
数量
行动
1.
---挑选---
资产
非资产
X
2.
---挑选---
资产
非资产
X
3.
---挑选---
资产
非资产
X
添加行
jquery代码是:
$('#add').click(function(){
var last_row_id = $('#expense_table tr:last').attr('id').split('_')[1];
//alert(last_row_id);
$('tr[id="row_1"]').clone().insertAfter('#expense_table tr:last');
$('#expense_table tr:last').attr('id','row_'+(parseInt(last_row_id) + 1));
});// end of #add click event
var $in = new Array();
$('.exp_type').live('change',function(){
var id = $(this).closest('tr').attr('id').split('_')[1];
if($(this).val() == 'asset'){
var div = "<tr id=\"asset_"+id+"\"><td colspan=\"7\"><td></tr>";
$('#row_'+id).after(div);
var $box = $('<div/>').attr('class','asset_details');
$in[0] = "<tr><td><label>Assest Type:</label></td><td><select name=\"asset_type\" id=\"asset_type\"><option value=\"\">---Select---</option></select></td></tr>";
$in[1] = "<tr><td><label>Name:</label></td><td><input type=\"text\" id=\"name\" name=\"name\"/></td></tr>";
$in[2] = "<tr><td><label>Description:</label></td><td><input type=\"text\" id=\"asset_description\" name=\"asset_description\" /></td></tr>";
$in[3] = "<tr><td><label>Serial No:</label></td><td><input type=\"text\" id=\"asset_serial_num\" name=\"asset_serial_num\" /></td></tr>";
$('#asset_'+id).find('td:first').append($box);
$box.append($in);
} else {
$('#asset_'+id).fadeOut(500, function() { $('#asset_'+id).remove(); });
}
});//end of #expense_type
$('#添加')。单击(函数(){
var last_row_id=$('#费用表tr:last').attr('id').split('u')[1];
//警报(最后一行\u id);
$('tr[id=“row_1”]”)。clone().insertAfter('#expense_table tr:last');
$('#expense_table tr:last').attr('id','row_'+(parseInt(last_row_id)+1));
});// #添加单击事件结束
var$in=新数组();
$('.exp_type').live('change',function(){
变量id=$(this).closest('tr').attr('id').split('uu')[1];
if($(this).val()=='asset'){
var div=“”;
$('#行'+id.)。在(div)之后;
var$box=$('').attr('class','asset_details');
$in[0]=“资产类型:---选择----”;
$in[1]=“名称:”;
$in[2]=“说明:”;
$in[3]=“序列号:”;
$('#asset'+id).find('td:first').append($box);
$box.append($in);
}否则{
$('#asset_'+id).fadeOut(500,function(){$('#asset_'+id).remove();});
}
});//#费用#类型结束
将资产添加到表的最后一行时,$(“#expense#table tr:last”)
没有id。最后一个tr
是在您的#ASSET#x
内部,而不是#ASSET#x
本身
尝试将class
添加到您的行中,例如标准行的class='input-row'
(这样您可以按照行数命名ID,包括资产行在内的每一行的class='table-row'
),这样您就可以在最后一行之后添加一行
这是一把小提琴:
以下是:
<table id="expense_table" class="">
<thead>
<tr>
<th>Sl. No</th>
<th>Particulars</th>
<th>Type</th>
<th>Qty</th>
<th>Rate</th>
<th>Amount</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<tr id="row_1" class="input-row table-row">
<td>1</td>
<td><input type="text" name="particulars" /></td>
<td>
<select id="expense_type" name="expense_type" class="exp_type span2">
<option value="">---Select---</option>
<option value="asset">Asset</option>
<option value="non_asset">Non Asset</option>
</select>
</td>
<td><input type="text" name="qty" class="input-small" /></td>
<td><input type="text" name="rate" class="input-small" /></td>
<td><input type="text" name="amount" class="input-small" /></td>
<td>X</td>
</tr>
<tr id="row_2" class="input-row table-row">
<td>2</td>
<td><input type="text" name="particulars" /></td>
<td>
<select id="expense_type" name="expense_type" class="exp_type span2">
<option value="">---Select---</option>
<option value="asset">Asset</option>
<option value="non_asset">Non Asset</option>
</select>
</td>
<td><input type="text" name="qty" class="input-small" /></td>
<td><input type="text" name="rate" class="input-small" /></td>
<td><input type="text" name="amount" class="input-small" /></td>
<td>X</td>
</tr>
<tr id="row_3" class="input-row table-row">
<td>3</td>
<td><input type="text" name="particulars" /></td>
<td>
<select id="expense_type" name="expense_type" class="exp_type span2">
<option value="">---Select---</option>
<option value="asset">Asset</option>
<option value="non_asset">Non Asset</option>
</select>
</td>
<td><input type="text" name="qty" class="input-small" /></td>
<td><input type="text" name="rate" class="input-small" /></td>
<td><input type="text" name="amount" class="input-small" /></td>
<td>X</td>
</tr>
</tbody>
</table>
</div>
<span id="add">Add Row</span>
序号
详情
类型
数量
比率
数量
行动
1.
---挑选---
资产
非资产
X
2.
---挑选---
资产
非资产
X
3.
---挑选---
资产
非资产
X
添加行
以下是:
$('#add').click(function(){
var last_row_id = $('#expense_table .input-row:last').attr('id').split('_')[1];
console.log(last_row_id);
$('tr[id="row_1"]').clone().insertAfter('#expense_table .table-row:last');
$('#expense_table tr:last').attr('id','row_'+(parseInt(last_row_id) + 1)).addClass('input-row table-row');
});// end of #add click event
var $in = new Array();
$('.exp_type').live('change',function(){
var id = $(this).closest('tr').attr('id').split('_')[1];
if($(this).val() == 'asset'){
var div = "<tr class=\"table-row\" id=\"asset_"+id+"\"><td colspan=\"7\"><td></tr>";
$('#row_'+id).after(div);
var $box = $('<div/>').attr('class','asset_details');
$in[0] = "<tr><td><label>Assest Type:</label></td><td><select name=\"asset_type\" id=\"asset_type\"><option value=\"\">---Select---</option></select></td></tr>";
$in[1] = "<tr><td><label>Name:</label></td><td><input type=\"text\" id=\"name\" name=\"name\"/></td></tr>";
$in[2] = "<tr><td><label>Description:</label></td><td><input type=\"text\" id=\"asset_description\" name=\"asset_description\" /></td></tr>";
$in[3] = "<tr><td><label>Serial No:</label></td><td><input type=\"text\" id=\"asset_serial_num\" name=\"asset_serial_num\" /></td></tr>";
$('#asset_'+id).find('td:first').append($box);
$box.append($in);
} else {
$('#asset_'+id).fadeOut(500, function() { $('#asset_'+id).remove(); });
}
});//end of #expense_type
$('#添加')。单击(函数(){
var last_row_id=$('#费用_表。输入行:last').attr('id').split('u')[1];
console.log(最后一行\u id);
$('tr[id=“row_1”]').clone().insertAfter('#expense_table.table row:last');
$('#expense_table tr:last').attr('id','row_'+(parseInt(last_row_id)+1)).addClass('input-row table row');
});//结束#添加单击事件
var$in=新数组();
$('.exp_type').live('change',function(){
变量id=$(this).closest('tr').attr('id').split('uu')[1];
if($(this).val()=='asset'){
var div=“”;
$('#行'+id.)。在(div)之后;
var$box=$('').attr('class','asset_details');
$in[0]=“资产类型:---选择----”;
$in[1]=“名称:”;
$in[2]=“说明:”;
$in[3]=“序列号:”;
$('#asset'+id).find('td:first').append($box);
$box.append($in);
}否则{
$('#asset_'+id).fadeOut(500,function(){$('#asset_'+id).remove();});
}
});//结束#费用_类型
请大家帮帮我。谢谢Zemljoradnik..它按照我想要的方式工作。非常感谢。请仔细检查一下,如果答案对你有效,你必须接受答案。还有一个mo