2011-12-07 33 views
1

您好我有這樣一些代碼:如何在代碼中設置一個複選框值

foreach (var item in Model) { 
     <div> 
      @Html.DisplayFor(modelItem => item.UserRole.Role.Name) 
     </div> 
     <div> 
      <input type="checkbox" name="ids" checked="@item.Active" /> 
     </div> 
    } 

我試圖達到設定的複選框檢查,如果產品激活其他未選中。

我理解的語法應該是checked="checked",我已經將它設置爲checked="true"

我不明白如何真正轉化爲檢查,什麼假做。

我試圖使用三元組,但它不會很好。任何人都可以幫忙嗎?

+0

無論您使用的服務器端語言/框架 - 請相應標記問題。 –

回答

2

checked屬性的存在將導致它被檢查,即(AFAIK)該屬性的值是什麼並不重要。所以,你需要檢測是否在所有添加checked屬性:

foreach (var item in Model) 
{ 
     <div> 
      @Html.DisplayFor(modelItem => item.UserRole.Role.Name) 
     </div> 
     <div> 
       <input type="checkbox" name="ids" @if (item.Active) { Write("checked"); }/> 
     </div> 
    } 

編輯:改到MДΓΓБДLL版本,乾淨多了。

一個蠻力的方法= P

+0

我並不熟悉這種特殊的模板風格。這不會工作得很好,而且會更幹嗎? '' –

+0

從來沒有見過這樣做過。我會編輯我的答案。感謝您的評論。 –

+0

我不知道這是否是有效的語法,或者不是... –

1

我理解的語法應該是checked="checked"

如果使用的是XHTML,這是真的。在HTML中使用簡寫語法is recommended,其中只指定該屬性的值(儘管用戶代理近期沒有問題,但輸入更快)。

<input type="checkbox" name="foo" value="bar" checked> 

我不明白如何真正轉化爲檢查

這取決於你所使用的(不明)模板語言。

以及如何處理錯誤。

根本不包括checked屬性。

<input type="checkbox" name="foo" value="bar"> 
1

在HTML中,要取消選中它,只需刪除checked =「whatever」屬性即可。從技術上講,HTML並不關心checked =「」的值是什麼,只是它存在並且它是有效的標記。

+0

不是。 'checked'是一個布爾屬性。有效值爲「true」或「false」。其他一切都是無效的。 –

+0

@dotweb,這是不正確的,因爲ozbarry說任何值都允許它評估爲真。 –

+0

@AshBurlaczenko看起來我們都錯了。我只是用(HTML5)驗證器進行了試驗,似乎只允許「checked」值。 –

相關問題