为什么我的表单在validation后不会发回?

我有一个asp.net页面,其中包含使用ShowMessageBox="True"和几个validation器设置的多个validation摘要。 我遇到了一种情况,当validation失败时,validation摘要会正确显示,但是通常会触发页面回发的下一次单击不会触发回发。 所以步骤看起来像这样:

  1. 单击触发validation的按钮。
  2. validation失败,并显示带有失败消息的消息框。
  3. 单击另一个不validation的按钮但应该触发回发没有任何反应
  4. 再次单击相同按钮作为步骤3,按预期发生回发。

什么可能导致这种行为?

编辑:validation是按以下方式进行的。 在asp页面中:

  

在javascript中:

 function DoValidation() { if (!Page_ClientValidate('group1')) return false; if (!Page_ClientValidate('group2')) return false; return true; } 

在对此进行了处理并仔细使用调试器之后,我终于发现,当您对问题的编辑中描述的方式进行validation时,布尔值设置为失败,阻止页面的下一个PostBack通过。 我相信这是在自动完成validation时完成的,而不是我在这里做的明确。 更改上面描述的javascript看起来像这样:

 function DoValidation() { if (!Page_ClientValidate('group1')) { Page_BlockSubmit = false; return false; } if (!Page_ClientValidate('group2')) { Page_BlockSubmit = false; return false; } return true; } 

导致问题消失。 希望这将有助于下一个犯同样错误的人。