【问题标题】:Using jQuery to trigger actions on checking and unchecking a checkbox使用 jQuery 触发选中和取消选中复选框的操作
【发布时间】:2014-06-30 17:16:30
【问题描述】:

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

我的表单中有以下 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 代码,但无论复选框的选中或未选中状态如何,我总是会收到“未选中”警报。换句话说,触发不是这里的问题,而是未正确检测(或处理)复选框的条件(选中或未选中状态)。

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

【问题讨论】:

  • 使用 javascript this.checked 或 jQuery $(this).is(':checked')

标签: jquery forms checkbox checked eventtrigger


【解决方案1】:

试试这个:

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

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

【讨论】:

  • 做到了。谢谢!
【解决方案2】:

你可以像这样使用prop()

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

FIDDLE EXAMPLE

或:

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

FIDDLE DEMO

【讨论】:

    【解决方案3】:

    希望有帮助

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

    【讨论】:

      猜你喜欢
      • 2013-08-04
      • 2013-01-18
      • 2017-04-22
      • 2011-08-26
      • 1970-01-01
      • 2015-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多