已禁用已选中复选框显示为未选中 - ASP.NET

时间:2009-03-09 22:39:55

标签: asp.net html

我有一个输入复选框,当某些JS在页面加载时运行时会被选中和禁用。

<input name="selectUnionDues" id="selectUnionDues"  type="checkbox" checked="checked" runat="server" />

当我使用(在服务器端)

获取复选框的值时
this.selectUnionDues.checked //returns false

我总是得到一个假的

编辑:我担心使用大量的asp.net控件,因为此应用程序中的页面大小需要很低。有没有办法使用HTMl控件?

6 个答案:

答案 0 :(得分:11)

Disabled form controls不是“successful controls”,这意味着他们的价值不会随着您的表单“提交”。

答案 1 :(得分:3)

检查一下 http://www.4guysfromrolla.com/articles/012506-1.aspx

简而言之, (1)“表单”或“。”的“SubmitDisabledControls”属性 (2)调整作者提供的javascript

答案 2 :(得分:1)

如果禁用该复选框,则始终返回false。 最好的办法是将复选框设置为只读,以便它按原样返回值。 制作readonly="readonly"

答案 3 :(得分:0)

我也不如直觉行为。如果我测试Page_Init中的值,它总是返回true。在Page_Load中测试它会返回所选的值。

尝试使用服务器端控件而不是使用runat = server的HTML控件。

<asp:CheckBox ID="selectUnionDues" runat="server" Checked="true" />

此外,您声明“禁用”控件但我没有看到标记中禁用的任何内容。无论哪种方式,最好使用服务器WebControl。

答案 4 :(得分:0)

如果您不介意依赖JS,那么当复选框的check属性发生更改时,您可能会有一个隐藏的输入值,然后使用该值服务器端。

答案 5 :(得分:0)

虽然最初的问题是关于HtmlInputCheckBox控件,但我认为提一下Checkbox控件也存在类似的问题会很有用,因为Enabled =“False”和禁用之间存在差异。 = “禁用”。我在这里发布调查结果:ASP.Net Checkbox.Checked is set to default when use disabled attribute or difference between Enabled property and disabled attribute。具体来说,它解释了为什么在使用disabled属性时重置Checked属性,以及为什么在使用Enabled server属性时不重置它。

相关问题