2009-02-27 112 views
2

我一直在閱讀有關複選框的stackoverflow並將它們的值設置爲1以使它們被選中,但它似乎不適用於我的情況。我有一個數據庫eval表達式,當我的checkbox應該被檢查時,它的計算結果爲1,並且我驗證了生成的頁面至少有一個輸入複選框,value = 1不會顯示爲checked。什麼不復選框值='1'在這種情況下工作?

我錯過了什麼?我試着設置checked屬性,但即使checked =''也被選中,所以我無法看到爲checked和unchecked複選框做了這項工作。

下面是似乎不工作的HTML。

<input type='checkbox' class="datacell" id='603' 
style='text-align: center' value='1' /> 

下面是我已成立了以我的中繼器爲主要投入要素

<input type='<%# Eval("InputType") %>' class="datacell" 
id='<%# Eval("CellID") %>' style='<%# Eval("InputAlign") %>' 
value='<%# Eval("TestResult") %>' /> 

其他evals只需確保正確的細胞複選框的databinders,而細胞的排列工作的某些方式(複選框對齊中心,數字東西對齊右邊和其他東西對齊左邊)。

編輯:那麼如何用Databinding Expression做到這一點,那是我的兩難境地。

回答

8

按照W3C specification

Checkboxes (and radio buttons) are on/off switches that may be toggled by the user. A switch is "on" when the control element's checked attribute is set.

所以設置的複選框屬性將選中複選框的任何值。

  • 檢查= 「檢查」
  • 檢查= 「假」
  • 檢查=「真
  • 檢查

所有標記爲選中的複選框。您需要刪除該屬性完全清除複選框。

所以,你可能的解決辦法是:

<input type='<%# Eval("InputType") %>' class="datacell" 
id='<%# Eval("CellID") %>' style='<%# Eval("InputAlign") %>' 
<%# isChecked((int)Eval("TestResult")) %> /> 

代碼隱藏

protected string isChecked(int testResult) { 
    if (testResult == 1) { 
    return "checked='checked'"; 
    } else { 
    return ""; 
    } 
} 
11

正確的方法來設置一個複選框作爲託運是:

<input type="checkbox" class="datacell" id="603" 
style="text-align: center" checked="checked" /> 

,並呈現一個未選中的複選框的正確方法是(注意,整個checked屬性丟失):

<input type="checkbox" class="datacell" id="603" 
style="text-align: center"/> 
1

這很簡單:

<input type="checkbox" value="whatever" checked> Create a checked box 
<input type="checkbox" value="whatever"> Creates an unchecked box 
-2

複選框使用checked="checked" a ttribute

例子:

<p>Please select every sport that you play.</p> 
Soccer: <input type="checkbox" checked="checked" 
name="sports" value="soccer" /> 
<br /> 
Football: <input type="checkbox" 
name="sports" value="football" /> 
<br /> 
Baseball: <input type="checkbox" 
name="sports" value="baseball" /> 
<br /> 
Basketball: <input type="checkbox" checked="checked" 
name="sports" value="basketball" /> 
</p> 

http://www.tizag.com/htmlT/htmlcheckboxes.php

+0

這是不正確。 checked =「checked」是正確的方法。 由於瀏覽器比較自由地處理html,「yes」會起作用。你實際上可以使用任何值進行檢查,大多數瀏覽器都會接受它,但它不正確 – 2009-02-27 13:57:24

+0

@Neil:W3C規範聲明它被視爲開/關,因此任何值都可以工作(或根本沒有任何值) 。不要責怪瀏覽器。 – TheTXI 2009-02-27 14:14:10

1

你應該使用檢查= 「檢查」 複選框的屬性,以使其作爲託運。值屬性是在表單被引用時選中複選框的情況下將提交給服務器的值。

0

你沒有給該複選框的名稱屬性!

0

這裏就是我所做的:

相關問題