1

我有一个带有复选框的页面,该复选框在单击按钮时使用 javascript 禁用/重新启用。如果我从不禁用该复选框,则其值已正确发布,但是如果我禁用该复选框,即使它在没有值的情况下发布(即使选中,也会发布为“name =”)。我已经通过萤火虫检查了 POST 值。

为什么它会这样?我错过了什么吗?我在某处读到禁用控件未发布,没关系,但是单击提交时此控件未禁用。

我正在使用具有更复杂设置的 ASP.NET 来测试它,但本质上这是问题的核心。浏览器是FF最新的。

我发现了非常相似的问题,但是没有答案: 禁用控件被重新启用但仍然没有将内容回发到服务器

4

2 回答 2

0

错误似乎在于我对提交数据的解释。正如 TJ 正确指出的那样(它引导我找到解决方案,所以谢谢!)如果未选中该复选框,则不会提交任何内容,而不是像我的情况那样提交“cbName =”。

真正的问题(我提出这个问题的原因)是 ASP.NET 没有识别回发的选中复选框。但这是由于不同的原因:我的 javascript 禁用函数也这样做了 this.value = ''。但是,如果您对 asp:checkbox 执行此操作,则回发无法识别其值(状态),并且该复选框始终在服务器上显示为未选中。ASP.NET 必须具有 cbName=on 才能识别回发的检查状态。

好吧,至少我今天学到了一些东西。希望这也可以在将来对其他人有所帮助。

于 2012-12-14T14:18:00.617 回答
0

您究竟如何禁用和重新启用该复选框?该disabled属性是一个布尔属性。属性的存在而不是值意味着它被禁用。所有这些复选框都被禁用:

<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">
于 2012-12-14T14:19:09.060 回答