确定。这是背景。
我有一个应该接受支票的应用程序。用户有2个单选按钮。第一个单选按钮有一个与之关联的下拉列表,其中包含以前使用过的支票帐户的屏蔽号码。
第二个单选按钮有三个文本框和一个与之关联的支票图像。
当用户点击此页面时,将禁用三个文本框和与第二个单选按钮关联的检查图像。然后,如果用户决定他/她想要使用新的支票账户,他们可以点击第二个单选按钮并激活启用三个复选框的Javascript以及与该第二个单选按钮相关联的支票的图像。如果他们点击第一个单选按钮,它将重新禁用文本框并隐藏与第二个单选按钮关联的检查图像。
当我进行服务器端验证时会出现问题。在验证所有文本字段后,如果出现问题,我就会脱离代码的底部,页面会回发,并且违规文本字段上方的标签会显示错误消息。
一个警告:应该在第一个单选按钮的OnClick事件上触发的Javascript以及第二个单选按钮的文本字段被禁用。用户可以单击第二个单选按钮,这些字段将启用,但这非常笨重。
这是我注入Javascript的启用代码:
Private Sub JavascriptInject()
Dim sEnableControls As String
Dim sDisableControls As String
'write out the enable controls script
sEnableControls = "<script type=""text/javascript"">function EnableControls(){ "
sEnableControls = sEnableControls & "document.getElementById('txtRoutingNumMult').disabled=false;"
sEnableControls = sEnableControls & "document.getElementById('txtECheckNumMult').disabled=false;"
sEnableControls = sEnableControls & "document.getElementById('txtECHeckNameMult').disabled=false;"
sEnableControls = sEnableControls & "document.getElementById('imgCheckMult').style.display='';"
sEnableControls = sEnableControls & " }</script>"
'write out the disable controls script
sDisableControls = "<script type=""text/javascript"">function DisableControls(){ "
sDisableControls = sDisableControls & "document.getElementById('txtRoutingNumMult').disabled=true;"
sDisableControls = sDisableControls & "document.getElementById('txtECheckNumMult').disabled=true;"
sDisableControls = sDisableControls & "document.getElementById('txtECHeckNameMult').disabled=true;"
sDisableControls = sDisableControls & "document.getElementById('imgCheckMult').style.display='none';"
sDisableControls = sDisableControls & " }</script>"
'inject it
ClientScript.RegisterStartupScript(Me.GetType, "EnableControls", sEnableControls)
ClientScript.RegisterStartupScript(Me.GetType, "DisableControls", sDisableControls)
rbECheckNew.Attributes.Add("OnClick", "EnableControls()")
rbECheckPrev.Attributes.Add("OnClick", "DisableControls()")
End Sub
如何在失败的验证回发中重新启用文本框?
答案 0 :(得分:1)
您可以在失败的验证回发时调用以下函数:
ClientScript.RegisterStartupScript(Me.GetType,“EnableControlsStartup”,“EnableControls()”,true)
参考链接:
http://msdn.microsoft.com/en-us/library/system.web.ui.page.registerstartupscript.aspx