我已经尝试了所有可能的方法,但还是没有成功。 我有一个模式窗口与复选框,我想当模式打开时,复选框勾选或取消勾选应该基于数据库值。(我已经与其他领域的人合作过了。)我开始试着去检查,但不管用。

我的HTML div:

<div id="fModal" class="modal" >
    ...
    <div class="row-form">
        <div class="span12">
            <span class="top title">Estado</span>

          <input type="checkbox"  id="estado_cat" class="ibtn">
       </div>
    </div>             
</div>

和jQuery:

$("#estado_cat").prop( "checked", true );

我也尝试了attr,以及在论坛上看到的其他工具,但似乎都不起作用。 谁能告诉我怎么走?


EDIT

好吧,我真的遗漏了一些东西。如果复选框在页面中,我可以检查/取消检查使用代码,但它是在模态窗口中,我不能。我尝试了几十种不同的方法。

我有一个链接,应该打开模式:

<a href='#' data-id='".$row['id_cat']."' class='editButton icon-pencil'></a>

和jQuery“监听”点击和执行一些操作,如填充一些文本框的数据来自数据库。一切都像我想要的那样工作,但问题是我不能设置复选框选中/未选中使用代码。请帮助!

$(function () {
    $(".editButton").click(function () {
        var id = $(this).data('id');
        $.ajax({
            type: "POST",
            url: "process.php",
            dataType: "json",
            data: {
                id: id,
                op: "edit"
            },
        }).done(function (data) {
            // The next two lines work fine,
            // i.e. it grabs the value from database and fills the textboxes
            $("#nome_categoria").val(data['nome_categoria']);
            $("#descricao_categoria").val(data['descricao_categoria']);

            // Then I tried to set the checkbox checked (because it's unchecked by default)
            // and it does not work
            $("#estado_cat").prop("checked", true);
            $('#fModal').modal('show');
        });

        evt.preventDefault();
        return false;
    });
});

当前回答

尝试这个,因为你正在使用jQuery UI可能(如果不是请评论)

 $("#fModal" ).dialog({
     open: function( event, ui ) {

     if(//some hidden value check which stores the DB value==expected value for
      checking the Checkbox)

         $("div.row-form input[type='checkbox']").attr('checked','checked');

    }
   });

其他回答

这个作品。

 $("div.row-form input[type='checkbox']").attr('checked','checked');

你可以像下面这样写给定的代码。

HTML

<input type="checkbox"  id="estado_cat" class="ibtn">

jQuery

$(document).ready(function(){
    $(".ibtn").click(function(){
        $(".ibtn").attr("checked", "checked");
    });
});

希望它对你有用。

我知道这要求一个Jquery的解决方案,但我只是想指出,这是非常容易切换这在纯javascript。

var element = document.getElementById("estado_cat");
element.checked = true;

它将在当前和未来的所有版本中工作。

如果您希望在GreaseMonkey脚本中使用此功能来自动选中页面上的复选框,请记住,简单地设置选中的属性可能不会触发相关的操作。在这种情况下,“点击”复选框可能会(以及设置选中的属性)。

$("#id").click()

因为你是在一个模态窗口(无论是动态的还是在页面中),你可以使用以下代码来实现你的目标:(我在我的网站上遇到了同样的问题,这是我如何修复它)

HTML:

<div class="content-container" style="text-align: right;">
    <input type="checkbox" id="QueryGroupCopyQueries">
    <label for="QueryGroupCopyQueries">Create Copies</label>                                                   
</div>

代码:

$.each(queriesToAddToGroup, function (index, query) {
    if (query.groupAddType === queriesGroupAddType.COPY) {

        // USE FIND against your dynamic window and PROP to set the value
        // if you are using JQUERY 1.6 or higher.
        $(kendoWindow).find("input#QueryGroupCopyQueries").prop("checked", true);

        return;
    }

在上面的“kendoWindow”是我的窗口(我的是动态的,但我也这样做时,追加到一个元素直接在页面)。我正在遍历一个数据数组(“queriesToAddToGroup”),以查看是否有任何行具有COPY属性。如果是这样,我想打开窗口内的复选框,当用户从该窗口保存时设置该属性。