Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用RegisterStartupScript调用javascript警报框后停止vb代码执行_Javascript_Asp.net_Vb.net_Code Behind - Fatal编程技术网

如何使用RegisterStartupScript调用javascript警报框后停止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

我有一个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 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()
如果没有,那么您需要找到其他方法来提前检测这种情况,或者在客户端复制这种行为