为了清楚起见,假设我有一个复选框,我想检查并取消选中两个按钮。
我可以使用基本的javascript来检查/取消选中该框,但是使用jquery,一旦删除该属性,我就无法将其设置回来......任何想法为什么?
我创建了一个基本的fiffle来说明:
<button id='button1'>check</button>
<button id='button2'>uncheck</button>
<input type="checkbox" id="myBox1" value="polo" />
<br/>
<button id='button3'>check</button>
<button id='button4'>uncheck</button>
<input type="checkbox" id="myBox2" value="polo" />
<br/>
$(document).ready(function () {
$('#button1').click(function () {
$('#myBox1').attr('checked','checked');
});
$('#button2').click(function () {
$('#myBox1').removeAttr('checked');
});
$('#button3').click(function () {
document.getElementById('myBox2').checked = true;
});
$('#button4').click(function () {
document.getElementById('myBox2').checked = false;
});
});
答案 0 :(得分:7)
您应该使用.prop()
代替。来自jQuery关于.attr()
的文档:
从jQuery 1.6开始,.attr()方法为尚未设置的属性返回undefined。要检索和更改DOM属性(如表单元素的已选中,已选择或已禁用状态),请使用.prop()方法。
答案 1 :(得分:2)
您现在应该使用.prop()。
$('#button1').click(function () {
$('#myBox1').prop('checked',true);
});
$('#button2').click(function () {
$('#myBox1').prop('checked', false);
});
$('#button3').click(function () {
$('#myBox2').prop('checked', true);
});
$('#button4').click(function () {
$('#myBox2').prop('checked', false);
});
答案 2 :(得分:0)
取消选中一个框,使用prop功能。 $('#myBox1').prop('checked', false);
上没有引号的false
答案 3 :(得分:0)
我不明白你为什么不工作,但是用这个:
$("#myBox1").prop("checked",true);
$("#myBox1").prop("checked",false);
确保拥有最新版本的jQuery。
答案 4 :(得分:0)
可以使用true
||修改已检查状态的状态false
方法中的.prop()
秒参数。
$('#btn_checked').on('click', function() {
$('#myBox1').prop('checked', true);
});
$('#btn_unchecked').on('click', function() {
$('#myBox1').prop('checked', false);
});