0

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

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

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

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

代替false取消选中该框。

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

这是一个复制问题的小提琴- 单击检查,然后取消选中然后再次检查,您将看到勾号不再出现

4

4 回答 4

5

演示

使用.prop()而不是 .attr()

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

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

阅读.prop() 与 .attr()

于 2013-09-30T14:38:38.407 回答
0

您必须为此使用道具$("#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);
});
于 2013-09-30T14:39:35.567 回答
0
$("#chk").prop("checked", false);
$("#chk").prop("checked", true);
于 2013-09-30T14:39:53.850 回答
0

用这个:

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

$("#uncheck").click(function() {
    //e.preventDefault();
    $("#chk").prop("checked", false);
});
于 2013-09-30T14:42:56.943 回答