[英]How to dynamically disable a TexBox on PostBack
好。 这是背景。
我有一个应该接受检查的应用程序。 用户有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
如何在验证失败的回发中重新启用文本框?
您可以在验证失败回发时调用以下函数:
ClientScript.RegisterStartupScript(Me.GetType,“ EnableControlsStartup”,“ EnableControls()”,true)
参考链接:
http://msdn.microsoft.com/zh-CN/library/system.web.ui.page.registerstartupscript.aspx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.