什么不复选框值='1'在这种情况下工作?

什么不复选框值='1'在这种情况下工作?

问题描述:

我一直在阅读有关复选框的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做到这一点,那是我的两难境地。

按照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 ""; 
    } 
} 

正确的方法来设置一个复选框作为托运是:

<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"/> 

这很简单:

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

复选框使用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

你应该使用检查= “检查” 复选框的属性,以使其作为托运。值属性是在表单被引用时选中复选框的情况下将提交给服务器的值。

你没有给该复选框的名称属性!

这里就是我所做的: