【问题标题】:Checkbox tick not showing [duplicate]复选框不显示 [重复]
【发布时间】:2013-10-06 11:30:47
【问题描述】:

我有一个复选框,我正在使用 jQuery 选中和取消选中,但是我遇到了大多数主要浏览器的错误:

如果我将复选框更改为选中,然后取消选中,然后通过使用 jquery 再次选中,即使您检查元素已正确添加选中的属性,小十字也不再显示。

我已经使用以下代码来更改选中的属性:

$('.checkbox').attr('checked', true);

false 代替取消选中该框。

有没有人遇到过这个问题或者知道如何解决它?

Here is a fiddle that replicates the problem - 点击勾选,然后取消勾选再勾选,你会看到勾选不再出现

【问题讨论】:

    标签: jquery checkbox


    【解决方案1】:

    DEMO

    使用 .prop() 代替 .attr()

    $("#check").click(function (e) {
        e.preventDefault();
        $("#chk").prop("checked", true);
    });
    
    $("#uncheck").click(function (e) {
        e.preventDefault();
        $("#chk").prop("checked", false);
    });
    

    阅读.prop() vs .attr()

    【讨论】:

    【解决方案2】:

    您必须为此使用 prop$("#chk").prop("checked", true);

    http://jsfiddle.net/daL3R/2/

    $("#check").click(function(e) {
        e.preventDefault();
        //$("#chk").attr("checked", true);
        $("#chk").prop("checked", true);
    });
    
    $("#uncheck").click(function(e) {
        e.preventDefault();
        //$("#chk").attr("checked", false);
        $("#chk").prop("checked", false);
    });
    

    【讨论】:

      【解决方案3】:
      $("#chk").prop("checked", false);
      $("#chk").prop("checked", true);
      

      【讨论】:

        【解决方案4】:

        使用这个:

        $("#check").click(function() {
           // e.preventDefault();
            $("#chk").prop("checked", true);
        });
        
        $("#uncheck").click(function() {
            //e.preventDefault();
            $("#chk").prop("checked", false);
        });
        

        【讨论】:

          猜你喜欢
          • 2019-08-24
          • 1970-01-01
          • 2019-12-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多