使用mvc.net中的json值检查javascript中的复选框

时间:2014-02-19 07:39:59

标签: javascript jquery json asp.net-mvc

我将一个复选框绑定到这样的模型。

@Html.CheckBoxFor(model => model.ReportSchedule.Monday, new {id="boolmonday" ,name = "boolmonday",@class="dayChkbox", disabled = "disabled" })<label>Monday</label><br />

现在我调用一个JavaScript方法:

$.get((URI.settings.getReportSchedule + '?scheduleId=' + id), function (data, status) {
    document.getElementById("boolmonday").checked = data.monday;
});

该函数已成功完成并检索json对象。我已经使用警报进行了检查。状态是成功的,它检索数据。在模型数据是这样的。

var data = new
{
    reportSchedulType =repeatschedule.ReportSchedulType,
    monday=true,
    tuesday = false,
    wednesday =true,
    thursday = false,
    friday=true,
};

return Json(data, JsonRequestBehavior.AllowGet);

但是复选框没有更新。

2 个答案:

答案 0 :(得分:0)

试试这个:

$.get((URI.settings.getReportSchedule + '?scheduleId=' + id), function (data, status) {
    document.getElementById("boolmonday").checked = data.monday == 'True' ? true : false;
});

答案 1 :(得分:0)

我已经解决了这个问题。我正在使用jquery 1.6 +。

    $.get((URI.settings.getReportSchedule + '?scheduleId=' + id), function (data, success) {
        data.monday === true ? $("#ReportSchedule_Monday").prop('checked', true) : $("#ReportSchedule_Monday").prop('checked', false);
    });

使用低于1.6的jquery的人应该使用

   $("#ReportSchedule_Monday").attr('checked', 'checked') 

而不是.prop,因为它不适用于那些版本。