2014-02-19 2 views
-1

Я привязал флажок к модели, подобной этой.проверка флажка в javascript с использованием значения json в mvc.net

@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); 

Но этот флажок не обновляется.

+0

Я считаю, что вы не можете переопределить 'id' при использовании CheckBoxFor. Установите флажок фактического рендеринга. – gdoron

+0

Нет в источнике html, он показывает id = boolmonday. Это означает, что он переопределен, как я думаю. –

+0

Я решил это как всегда. код java-скрипта приведен ниже в качестве ответа. Я использую jquery 1.6+. –

ответ

0

Попробуйте это:

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

не работает. :( –

+0

Можете ли вы отладить java-скрипт и сообщить нам, что такое значение в 'data.monday'? –

+0

data.monday = true. Я отлаживал его и использовал alert. Он дает data.monday = true. –

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); 
    }); 

люди, которые используют JQuery ниже 1.6 следует использовать

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

вместо .prop, как это не работает для этих версий.

Смежные вопросы