'checked' is null or not an object - only IE
This problem exists only in IE browser, in mozilla its working fine... i have to delete a row on click on checkbox.... Here is my code :
<table width="100%" id="seller">
<tr id="row_1" class="row">
<td><input type="checkbox" name="delete_seller" id="delete_seller" value="1" /></td>
</tr>
<tr id="row_2" class="row">
<td><input type="checkbox" name="delete_seller" id="delete_seller" value="2" /></td>
</tr>
</table>
<input type="button" id="delete" name="delete" value="Delete" onclick="delete_row('seller')"/>
var delete_ids = [];
function delete_row(tableID){
开发者_高级运维 var rows = document.getElementsByClassName('row');
var delItems = document.getElementsByName('delete_seller');
for(var i=0;i < rows.length;i++){
if(delItems[i].checked == true){
delete_ids.push(rows[i].id);
jQuery(rows[i]).remove();
i = i-1;
}
}
}
Showing error on page : 'checked' is null or not an object.
can one please tell me the fix .thanks in advance, sri..
You can replace the loop with jQuery, like this:
delete_ids.push.apply(delete_ids,
$('tr.row:has(.delete:checked)').remove()
.map(funcion() { return this.id; })
);
This will select all tr.row
element that :has
a .delete
element that is :checked
.
It calls .remove()
to remove the rows, then calls .map()
to get the rows' IDs, and applies the push
function to add them to your array.
You can avoid the push.apply
by changing it to
$('tr.row:has(.delete:checked)').remove()
.each(funcion() { delete_ids.push(this.id); });
EDIT: Try this:
$('tr.row:has(.delete_seller:checked)')
.each(funcion() { delete_ids.push(this.id); })
.remove();
Both your checkboxes and your button are called "delete" and your delItems
variable will contain the button as well. The button doesn't have a checked attribute, which I'm guessing is where IE complains about it.
Although in the example you give there are fewer elements with class 'row' than there are elements with name 'delete' which should mean you don't get to the point in the loop where delItems[i] refers to the button. Unless there are more elements class 'row' on the page.
精彩评论