这是我的代码:
$(document).ready(function () {
$("input[type='checkbox'][name='mycheckboxname']").change(function () {
if ($(this).checked == true) {
//do something (script 1)
}
else {
//do something else (script 2)
}
})
});
我想要完成的是每当用户检查或取消选中“mycheckboxname”复选框时,运行2个脚本。
问题是,使用上面的代码我总是只运行脚本2,所以看起来if $(this).checked
总是false
,即使用户检查checkbox
。我是否以错误的方式使用$(this)
?
答案 0 :(得分:4)
checked
是元素的DOM属性,但$(this)
返回一个jQuery对象。
您可以使用DOM属性:
if (this.checked)
没有理由将this
包装在jQuery实例中。我的意思是,你可以:
if ($(this).prop("checked"))
...但它并没有在this.checked
之上做任何有用的事情。
旁注:
if (someBoolean == true)
只是一种迂回的写作方式
if (someBoolean)
我的意思是,为什么要停在那里?为什么不
if ((someBoolean == true) == true)
或
if (((someBoolean == true) == true) == true)
或......; - )
答案 1 :(得分:2)
使用var chartOptions = {
xaxis: {
ticks: chartTicks
},
grid: {
clickable: true,
hoverable: true,
borderWidth: {
top: 0,
right: 0,
bottom: 0,
left: 0
}
},
series: {
stack: true,
bars: {
show: true,
align: 'center',
barWidth: 0.5
}
}
};
获取$(this).prop("checked")
true
/ false
值
点击下方的运行代码段,查看其是否有效
<input type="checkbox">
&#13;
$("input[type=checkbox]").change(function(event) {
if ($(this).prop("checked") === true) {
alert("ON");
}
else {
alert("OFF");
}
});
&#13;