显示真值的复选框

时间:2013-03-06 08:49:44

标签: c# javascript jquery ajax webmatrix

我有一个WebGrid,它显示了我的表格和编辑按钮的值。当用户单击此按钮时,会弹出一个弹出窗体或对话框窗体,并使用我之前提到的同一个表中的值填充它。

我已设法格式化日期值,现在有兴趣从我的表格式化布尔值(true / false)以显示在复选框中。目前,它显示为值为true或false的文本框。

以下是我的代码的一部分:

 $('#dialog-form2-edit').dialog(
            { 
//dialog form code .. this is fine

 $.getJSON('/Methods/GetCertificate/' + $(this).attr('id'), function (data)
                {   var certificate = data;
                    $('#edit-paid').val(certificate.Paid);
                    $('#edit-mark').val(certificate.Mark);
                    var date = new Date(parseInt(certificate.MarkDate.substr(6)));
                    var year = date.getFullYear();
                    var month = date.getMonth() + 1;
                    var day = date.getDate();
                    $('#edit-markdate').val(year + '-' + month + '-' + day);
                    $('#edit-markdate').datepicker({ dateFormat: 'yy-mm-dd' });

以下是我的HTML

的一部分
<div id="dialog-form2-edit" title="Edit Certificate">
        <form id="edit-certificate-form" action="@Href("~/Methods/UpdateCertificate")">
            <div class="row">
                <span class="label"><label for="markdate">Mark Date :</label></span>
                <input type="text" name="markdate" id="edit-markdate" size="20"/>
            </div>
           <div class="row">
                <span class="label"><label for="mark">Mark :</label></span>
                <input type=text" name="mark" id="edit-mark" size="15"/>
            </div>

值Mark和Paid是布尔值。现在我打算将类型更改为文本,并需要帮助将布尔值格式化为复选框。

2 个答案:

答案 0 :(得分:2)

如果您有服务器端bool值,则可以使用网页2中的conditional attributes来管理复选框。使用Razor:

为复选框的checked属性提供bool
@{ var myBool = true; }

<input type="checkbox" name="mark" id="mark" checked="@myBool" />

如果bool为true,则会呈现checked="checked"。如果是false,则根本不会呈现checked属性。

答案 1 :(得分:0)

使用此代码在复选框中显示布尔值。

$.getJSON('/Methods/GetCertificate/' + $(this).attr('id'), function (data)
                {
var certificate = data;
if(certificate.Pass == true){
     $('#edit-pass').attr('checked', 'checked')} 
 else {$('#edit-pass').removeAttr('checked', 'checked')};
// your other json data
})

由于我使用的是jquery-1.4.2.min.js,因此必须使用removeAttr。经过测试及其工作