使用jQuery触发检查和取消选中复选框的操作

时间:2014-06-30 17:16:31

标签: jquery forms checkbox checked eventtrigger

关于jQuery和复选框有几个问题,答案很好,Stack Overflow上提供了很好的答案和代码片段,但显然我已经设法误解了所有这些问题。

我的表单中包含以下HTML代码:

<input type="checkbox" name="copyAddress" id="copyAddress" value="1" />

Javascript代码如下:

  $('#copyAddress').change(function () {
    $(this).attr('checked')
      ? alert ("Checked")
      : alert ("Unchecked");

根据this post,上述情况应该有效。我也尝试使用.trigger(),. click()等代替.change(),并使用if()而不是逻辑运算符作为条件。在所有情况下,上述Javascript代码都会被触发,但无论复选框的选中状态或未选中状态如何,我都会收到“未选中”警报。换句话说,触发不是这里的问题,它是未正确检测(或处理)的复选框的条件(已检查或未检查状态)。

显然我在这里忽略了一些东西。它是什么?

3 个答案:

答案 0 :(得分:2)

试试这个:

$("#copyAddress").change(function () { $(this).is(":checked") ? alert ("Checked") : alert ("Unchecked"); });

JSFiddle:http://jsfiddle.net/9MfLg/

答案 1 :(得分:1)

您可以像这样使用 prop()

$('#copyAddress').change(function () {
    $(this).prop('checked')
      ? alert ("Checked")
      : alert ("Unchecked");
  });

FIDDLE EXAMPLE

或:

$('#copyAddress').change(function () {
    this.checked
      ? alert ("Checked")
      : alert ("Unchecked");
  });

FIDDLE DEMO

答案 2 :(得分:0)

希望这个帮助

$('#copyAddress').on('change', function(){
    if(this.checked){
        // Do some action when checked
    }else{
        // Do some action when unchecked
    }
});