从按钮单击后面的代码调用Javascript函数

时间:2011-06-02 14:14:20

标签: javascript asp.net

我想在单击按钮时执行javascript函数,如果结果只是成功,则应该在该按钮单击上执行服务器端代码。

以下是我要做的事情

 protected void btnAdd_Click(object sender, EventArgs e)
    {
         if (btnAddItem.Text == "Add")
            {
                string script = string.Format(@"validate()"); 

                ScriptManager.RegisterClientScriptBlock(this, typeof(Page), UniqueID, script, true); 

                if (text1.text== null)
                {
                    Addtogrid();
                                        }

以下是我的javascript函数

function validate() {
    var arrTextBox = document.getElementsByTagName("input");
           var retVal = 1;
    for (i = 0; i < arrTextBox.length; i++) {
        if (arrTextBox[i].type == "text" && arrTextBox[i].value == "") {
            retVal = 0;

        }
    }

    if (retVal == 0) {
        alert("Validation Failed");
        return false;
    }
    else {
        alert("Validation Success");
        return true;
    }

}

我无法理解如何捕获javascript函数的结果。我是第一次尝试这个。请帮助我。

2 个答案:

答案 0 :(得分:4)

我认为最简单的方法是设置验证功能,以便在标记中点击按钮进行调用。所以你的标记应该如下所示..

<asp:Button runat="server" ID="btnAdd" Text="My Button" OnClientClick="return validate()" OnClick="btnAdd_Click" />

注意OnClientClick属性。您可以使用该属性调用在服务器端代码之前执行的javascript函数。

答案 1 :(得分:1)

以下方式你可以在服务器端操作后调用javascript函数

 <script language="JavaScript" type="text/javascript">
       function validate(msg) {
    alert(msg);
   }
</script>
   <asp:Button ID="btnValidateUSR" runat="server" Text="Validate USR" CssClass="butn"  OnClick="btnValidateUSR_Click"/>

    protected void btnValidateUSR_Click(object sender, EventArgs e)
    {
        ClientScriptManager cs = Page.ClientScript;
            cs.RegisterStartupScript(this.GetType(), "ValError", "validate('"  +Resources.ErrorDescription.BalancingErrorMsg+ "');", true);

     }