1

ここでは、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");
        }

なにか提案を??

4

4 に答える 4

2

ちょっとあなたのコードで::

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

なぜ関数を呼び出すのか、それを変更する必要があるかもしれません

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

これはうまくいくと思います!!

于 2013-09-24T10:36:40.893 に答える
1

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

于 2013-09-24T10:33:44.510 に答える
0

ValidateEmail() メソッドは、引数として $.ready() メソッドに渡された匿名メソッド内で宣言されているため、表示されません。

$(document).ready の外で ValidateEmail メソッドを取得すると、動作するはずです。

于 2013-09-24T10:34:08.183 に答える