如何使用RegisterStartupScript调用javascript警报框后停止vb代码执行
我有一个vb.net项目,其中我使用javascript进行服务器端控件验证 我正在注册javascript代码,以使用asp按钮单击事件验证控件。问题是,如果验证失败,我想停止代码执行(用警报指示) 我的代码如下: VB:如何使用RegisterStartupScript调用javascript警报框后停止vb代码执行,javascript,asp.net,vb.net,code-behind,Javascript,Asp.net,Vb.net,Code Behind,我有一个vb.net项目,其中我使用javascript进行服务器端控件验证 我正在注册javascript代码,以使用asp按钮单击事件验证控件。问题是,如果验证失败,我想停止代码执行(用警报指示) 我的代码如下: VB: Protected Sub cmdSubmit_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles cmdSubmit.Click Dim sscri
Protected Sub cmdSubmit_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles cmdSubmit.Click
Dim sscript As New StringBuilder
If (Not ClientScript.IsStartupScriptRegistered("committeeEditorValidator")) Then
Page.ClientScript.RegisterStartupScript(Me.GetType(), "committeeEditorValidator", "committeeEditorValidator();", True)
End If
'Need the Sub routine to stop here if a Javascript alert is thrown.
updateMemberInfo()
End Sub
Javascript:
if (document.committeeEditor.txtbAcronym.value.length < 1)
{
document.getElementById("hderror").value = "1"
alert("You must provide a Committee Acronym!");
document.committeeEditor.txtbAcronym.focus();
return false;
}
document.committeeEditor.submit();
}
if(document.committeeEditor.txtbAcronym.value.length<1)
{
document.getElementById(“hderror”).value=“1”
警告(“您必须提供委员会的首字母缩略词!”);
document.committeeEditor.txtbAcronym.focus();
返回false;
}
document.committeeEditor.submit();
}
这里的问题是Javascript在客户端的浏览器中执行,而不是在服务器上执行。这意味着当Javascript运行时,服务器上的VB已经完全执行完毕
最好的选择是找到一种在呈现页面时检查值的方法。如果TXTBaronym控件是由ASP.net页面在服务器端创建的(而不是由JS脚本在客户端动态创建的),那么您只需执行以下操作即可
If txtbAcronym.Text.Length < 1 Then
Exit Sub
End If
updateMemberInfo()
如果txtbAcronym.Text.Length<1,则
出口接头
如果结束
updateMemberInfo()
如果没有,那么您需要找到其他方法来提前检测这种情况,或者在客户端复制这种行为