簡體   English   中英

如何首先調用clientide腳本函數然后調用服務器端按鈕單擊事件?

[英]How to call a clientside script function first and then call a server side button click event?

在這里,我試圖使用jquery對文本框進行電子郵件驗證,並在onclientclick上調用該函數,我也有一個按鈕點擊事件。但是按鈕點擊事件在javascript函數之前觸發。我需要在觸發前驗證文本框按鈕單擊事件。這是我的代碼

 $(document).ready(function () {
             $("#MainContent_txtEmail").blur(function () {
                ValidateEmail();
             });

             function ValidateEmail()
             {
              var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
                 var emailaddress = $("#MainContent_txtEmail").val();
                 if (!emailReg.test(emailaddress)) {

                     $("#emailspan").html('<font color="red" size=2px;>Please enter valid Email address</font>');
                     return false;
                 }
                 else {

                     $("#emailspan").html('<font color="red"></font>');
                     return true;
                 }
             }
         });

 <asp:TextBox ID="txtEmail" name="txtEmail" runat="server" CausesValidation="false" TextMode="Email">
            </asp:TextBox><span id="emailspan" value="0"></span>
            <asp:Button ID="btnsubmit" CssClass="btn pdf-submit" runat="server" Text="SEND"  OnClientClick="return ValidateEmail();" OnClick="btnsubmit_Click"/>

和我的活動

  protected void btnsubmit_Click(object sender, EventArgs e)
        {

            SendSmtpEmail(txtEmail.Text, "noreply@a.net", "test", "test-template");
        }

有什么建議??

嘿在你的代碼中::

`$("#MainContent_txtEmail").blur(function () 

為什么你要調用函數你可能需要改變它

$("#txtEmail").blur(function ()` 

這會工作我猜!

您將要刪除OnClick for btnsubmit

<asp:Button ID="btnsubmit" CssClass="btn pdf-submit" runat="server" Text="SEND"  OnClientClick="return ValidateEmailThenSubmit();" />

然后在驗證后在代碼中手動單擊btnsubmit。

function ValidateEmailThenSubmit()
{
    ValidateEmail();
    $("#" + <%= btnsubmit.ClientID %>).click();
}

為什么要使用javascript? 只需使用asp.net RegularExpressionValidator,如下所示:

<asp:RegularExpressionValidator ID="regexEmailValid" runat="server" ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" ControlToValidate="tbEmail" ErrorMessage="Invalid Email Format"></asp:RegularExpressionValidator>

更多信息請訪問http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.regularexpressionvalidator.aspx

在作為$ .ready()方法的參數傳遞的匿名方法內聲明ValidateEmail()方法是不可見的。

在$(document).ready之外獲取ValidateEmail方法,它應該可以工作。

暫無
暫無

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

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