我根本无法使用jQuery更新元素的属性。
HTML:
<input type="checkbox" name="row1" value="" >
jQuery的:
$(document).ready(function (event) {
$("input[type='checkbox']").change(function (e) {
var name = $(this).attr('name');
// grab name of original
var value = $(this).attr('value');
// grab value of original
var ischecked = $(this).is(":checked");
//check if checked
if (!ischecked) {
$('#' + name).removeAttr("checked");
alert("removed attr ");
} else {
$('#' + name).attr("checked", "checked");
alert($('#' + name).attr("checked"));
}
});
});
当我检查时,显示警报'未定义'。
答案 0 :(得分:2)
将$('#' + name)
更改为$(this)
$('#'+name).removeAttr("checked");
到
$(this).removeAttr("checked");
如果使用jQuery 1.6或更高版本,则可以使用
$(this).prop("checked", false);
答案 1 :(得分:1)
尝试更改此方式:check the jsbin
$(document).ready(function (event) {
$("input[type='checkbox']").change(function (e) {
var name = $(this).attr('name');
var value = $(this).val();
var ischecked = $(this).is(":checked");
if (!ischecked) {
$(this).prop("checked", false);
alert("removed attr ");
} else {
$(this).prop("checked", true);
alert($(":checked").val());
}
});
});
shows up an alert 'undefined' when i check.
这应该是因为您没有尝试检查值you can check the length of the **$(':checked')**
alert($(":checked").length);
如果你试着检查一下:
alert($(":checked"));
您将[object object]
处于警戒状态。
答案 2 :(得分:0)
'#'适用于 id 但不适用于名称
<input type="checkbox" name="row1" id="row1" value="" >
或使用此来获取参考。
答案 3 :(得分:0)
你的选择器错了。 您尚未为复选框设置ID。看起来应该是这样的:
$("input[name='"+name+"']").removeAttr("checked");