簡體   English   中英

onclick()和onClientClick()之間的區別?

[英]Difference between onclick() and onClientClick()?

如果我同時使用onclick()onClientClick()可以確保僅在客戶端函數返回TRUE后才能調用服務器端,反之亦然?

例如:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Import Namespace="System.Xml" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 <%
 protected void save_n_display(object sender, EventArgs e)
 {
    // This must be called when validate() returns true...
 }
 %>

<asp:Button ID="Button1"  OnClientClick="validate()" onClick="save_n _display" "Text="Check" runat="server" />


<script type="text/javascript" language="javascript">
    function validate()    // client side Validation is done
    {

    }
</script>

那么我可以使用onclick()onClientClick()還是需要其他功能? 我什至嘗試將變量從javascript傳遞到asp函數,因此,當validate返回true時,將調用save_n _display。

但是,您可以注冊客戶端點擊事件,這無關緊要。 盡管如果您正在使用服務器控件,那么您確實希望使用onclientclick。 但是關鍵是您要使用return Validate()。 然后,在您的validate方法中,根據是否已驗證,返回一個true或false值。

編輯:因此使onclientclick看起來像這樣:

onclientclick="return Validate();"

然后在validate函數中:

function Validate()
{
    return true;
}

我必須去查找示例...但是我只是做了on-click事件。 在后台代碼中,我運行了ServerSide代碼...或者我將在頁面上注冊腳本以調用JS驗證,然后運行后台代碼。

了解有關RegisterStartupScript的信息

OnClick="MyCodeBehindMethod()"

然后,在后面的代碼中有:

    //Verify and validate conditions
    string script1="<script language=JavaScript>"
    script1 += "Validate();"
    script1 += "</script>"
    Page.RegisterStartupScript("clientscript",script1);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM