我有一个带有复选框的页面,该复选框在单击按钮时使用javascript禁用/重新启用。如果我从不禁用复选框,那么它的值是正确的POSTed,但是如果我禁用了复选框,即使它在没有值的情况下发布(即使选中了,也会以"name=“的形式发布)。我已经通过firebug检查了POST的值。
为什么它会这样呢?我是不是遗漏了什么?我在某处读到,禁用的控件不会发布,这没问题,但当单击提交时,此控件不会被禁用。
我正在使用具有更复杂设置的ASP.NET来测试这一点,但本质上这是问题的核心。浏览器是FF的最新版本。
我发现了非常相似的问题,但是没有答案:disabled control being reenabled but still not posting back contents to server
发布于 2012-12-14 22:18:01
错误似乎是在我对提交的数据的解释中。正如TJ正确指出的那样(它引导我找到了解决方案,所以谢谢!)如果未选中该复选框,则不会提交任何内容,而不会像我的案例中那样提交"cbName=“。
真正的问题(我提出这个问题的原因)是ASP.NET不识别用于回发的选中的复选框。但这是由于不同的原因:我的javascript禁用函数也做了this.value = '‘。但是,如果对asp:复选框执行此操作,则回发无法识别其值(状态),并且该复选框在服务器上始终显示为未选中。ASP.NET必须具有cbName=on才能识别回发的选中状态。
好吧,至少我今天学到了一些东西。希望这也能在未来帮助其他人。
发布于 2012-12-14 22:19:09
您究竟是如何禁用和重新启用复选框的?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">
https://stackoverflow.com/questions/13877369
复制相似问题