确定用户何时选中或取消选中复选框

时间:2015-05-15 09:17:15

标签: javascript jquery html

这是我的代码:

$(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)

2 个答案:

答案 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;
&#13;
&#13;