我的脚本代码和html是这样的,当我尝试添加新行时,如果选中chekbox,则自动选择最后一个复选框的属性,而不是新行添加复选框,检查要删除新行中选中的复选框
脚本代码
<script type="text/javascript">
$("input.tr_clone_add").live('click', function() {
var $tr = $(this).closest('.tr_clone');
var $clone = $tr.clone();
$clone.find(':text').val('');
$tr.after($clone);
});
</script>
表看起来像这样
<table id="table-data" width="100%">
<tr class="tr_clone">
<td><input type="checkbox" autofocus name="status[]" value="Y"></td>
<td>
<select name="group_id[]">
<option>Select User</option>
<?php
$selectGroup = "SELECT group_id,group_name
FROM `group`";
$res = mysql_query($selectGroup);
while($row = mysql_fetch_array($res))
{
echo '<option value="'.$row['group_id'].'">'.$row['group_name'].'</option>';
}
?>
</select>
</td>
<td><textarea name="address[]" rows="3" cols="35" placeholder="Enter Address"></textarea></td>
<td><input type="button" name="add" value="Add" class="tr_clone_add"></td>
</tr>
</table>
答案 0 :(得分:2)
检查以下代码。您可以使用$clone.find('input[type=checkbox]')
找到克隆元素的复选框,并设置.attr('checked', false)
;
工作DEMO
$("input.tr_clone_add").live('click', function() {
var $tr = $(this).closest('.tr_clone');
var $clone = $tr.clone();
$clone.find(':text').val('');
$clone.find(':checked').attr('checked', false);
// or
// $clone.find('input[type=checkbox]').attr('checked', false);
$tr.after($clone);
});
答案 1 :(得分:1)
删除checked
属性。试试 -
var $clone = $tr.clone().prop('checked', false);
OR
var $clone = $tr.clone().removeAttr('checked');
答案 2 :(得分:0)
这是代码...
$("input.tr_clone_add").live('click', function() {
var $tr = $(this).closest('.tr_clone');
var $clone = $tr.clone();
var $clone = $tr.clone().prop('checked', false);
// or var $clone = $tr.clone().removeAttr('checked');
});
这并不是jQuery 3的新特性,通常将checked属性设置为false优于删除该属性。 “在所有其他情况下,应改用.prop(“ checked”,false)。” -我知道您在引用jQuery用户,但这也不正确:在您只能说this.checked = false的情况下,您不应说$(this).prop(“ checked”,false)>