我有一个页面,其中的复选框在按钮点击时使用javascript禁用/重新启用。如果我从不禁用复选框,那么它的值被正确POST了,但是如果我禁用复选框,即使它被发布没有值(即使在选中时也发布为“name =”)。我通过firebug检查了POST值。
为什么它会像这样?我错过了什么吗?我已经读过某个地方没有发布禁用的控件,没关系,但单击提交时不会禁用此控件。
我使用ASP.NET进行更复杂的设置来测试它,但实际上这是问题的核心。布鲁尔是最新的FF。
我发现了非常相似的问题,但没有答案: disabled control being reenabled but still not posting back contents to server
答案 0 :(得分:0)
错误似乎在我对提交数据的解释中。正如TJ正确地指出的那样(它引导我解决方案,所以谢谢!)如果没有选中复选框,那么提交NOTHING而不是像我的情况那样“cbName =”。
真正的问题(我提出这个问题的原因)是ASP.NET无法识别复选的回复复选框。但这是由于不同的原因:我的javascript禁用功能也做了这个.value =''。但是,如果对asp:复选框执行此操作,则无法识别其回发的值(状态),并且复选框始终显示为未在服务器上选中。 ASP.NET必须具有cbName = on才能识别回发的已检查状态。
至少我今天学到了一些东西。希望这可能也有助于其他人。
答案 1 :(得分:0)
您是如何禁用和重新启用该复选框的? disabled
attribute是boolean attribute。属性的存在而不是值意味着它被禁用。所有这些复选框都被禁用:
<input type="checkbox" name="cheese" disabled>
<input type="checkbox" name="cheese" disabled="disabled">
<input type="checkbox" name="cheese" disabled="">
<input type="checkbox" name="cheese" disabled="true">
<input type="checkbox" name="cheese" disabled="false">