2011-06-02 129 views
3

我想在按鈕點擊上執行一個JavaScript函數,如果結果是成功的,那麼服務器端代碼應該在該按鈕上單擊執行。從按鈕點擊代碼隱藏調用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函數的結果。我正在嘗試第一次。請幫助我。

+0

下面是關於調用JavaScript函數類似的文章,從代碼隱藏http://codepedia.info/2015/03/how-to-call -javascript函數從 - 代碼隱藏的服務器端-ASP-淨-C / – 2016-04-26 07:11:29

回答

4

我認爲最簡單的方法是設置驗證功能,在按鈕點擊標記時調用。因此,您的標記應如下所示:

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

請注意OnClientClick屬性。您可以使用該屬性來調用在服務器端代碼之前執行的JavaScript函數。

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); 

    } 
相關問題