我正在使用一个有点旧的应用程序并使用一些oldschool方法。
事情是:
我们有一个弹出多个文本框,组合框基本上输入组件如下所示
每当用户更改任何字段或通过它们导航时,页面都会刷新以进行验证。每次验证失败时,我们都会向这样的确认框添加一条消息(其中一个验证例子):
[Window Title]
Open file
[Content]
D:/WorkSpace/iSource/libdata/inc/hw_data_redblack_tree.h
The file name is invalid.
[OK]
在我们进行了所有验证之后:
string jscript = string.Empty;
if ( situacao != benOld.Situacao.Codigo &&
situacao != (int) SituacaoBeneficiarioEnum.Suspenso &&
benOld.Situacao.Codigo != (int)SituacaoBeneficiarioEnum.Suspenso &&
datasituacao < benOld.DataSituacao &&
datasituacao != Constants.NULLDATE)
jscript = jscript + " var i; for (i = 0; i < Page_Validators.length; i++) { ValidatorValidate(Page_Validators[i]); } ValidatorUpdateIsValid(); if ( Page_IsValid ){ "+ Pergunta5()+" } ";
ClientAction方法:
Toolbar.ActionSave.ClientAction = jscript +" var i; for (i = 0; i < Page_Validators.length; i++) { ValidatorValidate(Page_Validators[i]); } ValidatorUpdateIsValid(); if ( Page_IsValid ){ "+ jsNomesDep+" }";
当我们提交表单时,会弹出一条确认消息,如:
“有些验证出了问题,还想继续吗?”如果用户按下OK,则会提交字段,一切正常。
问题是:如果用户真的想再次更改该字段,则必须按取消,更改字段并再次提交。我们的问题是,即使第二次验证顺利,也会再次弹出相同的确认消息。正如我所看到的,PostBack没有清除以javascript发送的消息的信息。
答案 0 :(得分:0)
我认为问题在于你的onclick&#39;它只运行“获得价值”&#39;所以你没有运行代码的第一部分,所以这只运行一次:
jscript = string.Empty;
if ( situacao != benOld.Situacao.Codigo &&
situacao != (int) SituacaoBeneficiarioEnum.Suspenso &&
benOld.Situacao.Codigo != (int)SituacaoBeneficiarioEnum.Suspenso &&
datasituacao < benOld.DataSituacao &&
datasituacao != Constants.NULLDATE)
jscript = jscript + " var i; for (i = 0; i < Page_Validators.length; i++) { ValidatorValidate(Page_Validators[i]); } ValidatorUpdateIsValid(); if ( Page_IsValid ){ "+ Pergunta5()+" } ";
您的邮件错误将始终如一,这就是我认为发生的事情