2014-02-24 37 views
0

我是使用jQuery的新手。我使用c#/ net來創建和編輯視圖。在我創建的視圖中,我有:jQuery,複選框,然後隱藏和空值如果需要

<div class="editor-label"> 
    @Html.LabelFor(model => model.Pregnant) 
</div> 

<div class="editor-field"> 
    @Html.EditorFor(model => model.Pregnant) 
    @Html.ValidationMessageFor(model => model.Pregnant) 
</div> 

<div class="editor-label dueDate"> 
    @Html.LabelFor(model => model.DueDate) 
</div> 

<div class="editor-field dueDate"> 
    @Html.TextBox("DueDate", null, new { @class = "datepicker" }) 
    @Html.ValidationMessageFor(model => model.DueDate) 
</div> 

$(function() { 
    $('.dueDate').hide(); 
    $('#Pregnant').change(function() { 
     if ($('#Pregnant').is(':checked')) { 
      $('.dueDate').show(); 
     } 
     else { 
      $('.dueDate').hide(); 
     } 
    }); 

這可以正常工作,所以如果勾選懷孕複選框,則會顯示截止日期。

我有的問題是當我去編輯頁面...如果我使用相同的代碼,如果dueDate加載時隱藏,無論是否勾選了複選框。這是代碼所說的。

但是,我希望它在編輯頁面檢查是否打勾,然後在加載時進行正確的顯示或隱藏。 - 我是jQuery的新手,所以不知道該怎麼做。

僞代碼將是:

onload 
    if #pregnant.is checked 
     then show dueDate 
    else 
     dueDate.hide and empty dueDate Value 

我曾嘗試:

$('.dueDate').val(''); 

希望這是有道理的。

+0

創建有關呈現的HTML一個jsfiddle.net – mplungjan

+0

只是觸發#Pregnant變化事件後初始化它:'$( '#懷孕')變化(函數(){...})變化() ;' –

回答

0

如果有一個複選框與id="Pregnant"和一個或多個與class="duedate"元素,則代碼可能是

$('#Pregnant').on("click",function() { 
    $('.dueDate').toggle(this.checked); 
}); 

如果有一個以上的複選框,則不能使用ID,因爲它必須是唯一的,使用類如果您需要顯示特定的管理員,則可能還需要data屬性。

0

在運行$('。dueDate')。hide();代碼,你可以添加一個if,這樣只有當複選框未被選中時才隱藏。

if (!$('#Pregnant').is(':checked')) 
    $('.dueDate').hide(); 
相關問題