簡體   English   中英

RequiredField Validator不觸發

[英]RequiredField Validator not firing

我試圖觸發一個ASP.NET必需的字段驗證器,如下所示。 我不希望觸發JavaScript函數,除非並且直到所需的字段驗證器返回true為止。 就我而言,我點擊按鈕時不會觸發任何操作。

ASP.NET代碼

<div class="login_txt">
    Email ID<span class="asterisk">*</span>:
</div>
<asp:TextBox ID="txtEmailId_ExistingUser" Style="width: 169px;" runat="server" ValidationGroup="login"></asp:TextBox>
<div>
    <asp:RequiredFieldValidator ID="RFVtxtEmailId_ExistingUser" Font-Size="Smaller" ControlToValidate="txtEmailId_ExistingUser" Display="Dynamic" ForeColor="Red"  runat="server" ErrorMessage="Please enter Email-ID"></asp:RequiredFieldValidator>
    <asp:RegularExpressionValidator ID="RevtxtEmailId_ExistingUser" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" Font-Size="Smaller" ControlToValidate="txtEmailId_ExistingUser" Display="Dynamic" ForeColor="Red" runat="server" ErrorMessage="Email-ID not in correct Format"></asp:RegularExpressionValidator>
</div>                      

<div id="f2" class="text" style="margin-bottom: 0px">
    <div class="login_txt">
        Password<span class="asterisk">*</span> :
    </div>
    <asp:TextBox ID="txtPassword" runat="server" ValidationGroup="login" TextMode="Password"></asp:TextBox>
    <div>
        <asp:RequiredFieldValidator ID="RFVtxtPassword" Font-Size="Smaller" ControlToValidate="txtPassword" Display="Dynamic" ForeColor="Red" runat="server" ErrorMessage="Please Enter Password"></asp:RequiredFieldValidator>
    </div>
</div>

<div class="h5"></div>
<div id="f3" style="padding-left: 115px; padding-top: 10px">
    <asp:ImageButton ID="imgbtn_login" runat="server" ValidationGroup="login"  CssClass="login_btn" ImageUrl="images/Reg-login.png" OnClientClick="return ValidateLogin();" />
</div>

的JavaScript

<script type="text/javascript" language="javascript">
    function ValidateLogin(){
        if (Page.IsValid) {
             alert('valid');
        }
        else {
            alert('Invalid');                 
        }
    }
</script>

您無需腳本即可處理:

CausesValidation =“ true”和ValidationGroup =“ someGroupName”

到您的<asp:ImageButton/>以及ValidationGroup =“ FormValidation”`到您的驗證器:

根據您的HTML,我可以看到您沒有提到兩件事。

  1. 您沒有將ValidationGroup="Login"到您的Validation控件中

  2. 您尚未向按鈕添加CausesValidation="true"屬性

有關完整參考,請查看以下內容:-

<div class="login_txt">
    Email ID<span class="asterisk">*</span>:</div>
<asp:TextBox ID="txtEmailId_ExistingUser" Style="width: 169px;" runat="server" ValidationGroup="login"></asp:TextBox>
<div>
    <asp:RequiredFieldValidator ID="RFVtxtEmailId_ExistingUser" ValidationGroup="login"
        Font-Size="Smaller" ControlToValidate="txtEmailId_ExistingUser" Display="Dynamic"
        ForeColor="Red" runat="server" ErrorMessage="Please enter Email-ID"></asp:RequiredFieldValidator>
    <asp:RegularExpressionValidator ID="RevtxtEmailId_ExistingUser" ValidationGroup="login"
        ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" Font-Size="Smaller"
        ControlToValidate="txtEmailId_ExistingUser" Display="Dynamic" ForeColor="Red"
        runat="server" ErrorMessage="Email-ID not in correct Format"></asp:RegularExpressionValidator>
</div>
</div>
<div id="f2" class="text" style="margin-bottom: 0px">
    <div class="login_txt">
        Password<span class="asterisk">*</span> :
    </div>
    <asp:TextBox ID="txtPassword" runat="server" ValidationGroup="login" TextMode="Password"></asp:TextBox>
    <div>
        <asp:RequiredFieldValidator ID="RFVtxtPassword" ValidationGroup="login" Font-Size="Smaller"
            ControlToValidate="txtPassword" Display="Dynamic" ForeColor="Red" runat="server"
            ErrorMessage="Please Enter Password"></asp:RequiredFieldValidator>
    </div>
</div>
<div class="h5">
</div>
<div id="f3" style="padding-left: 115px; padding-top: 10px">
    <asp:ImageButton ID="imgbtn_login" CausesValidation="true" runat="server" ValidationGroup="login"
        CssClass="login_btn" ImageUrl="images/Reg-login.png" OnClientClick="return ValidateLogin();" />
</div>

希望對您有幫助

看看下面的截圖:

在此處輸入圖片說明

在每個ASP驗證程序中提及ValidationGroup ,如下所示:

<div class="login_txt">Email ID<span class="asterisk">*</span>:</div>
    <asp:TextBox ID="txtEmailId_ExistingUser" Style="width: 169px;" runat="server" ValidationGroup="login"></asp:TextBox>
<div>
<asp:RequiredFieldValidator ID="RFVtxtEmailId_ExistingUser" Font-Size="Smaller" ControlToValidate="txtEmailId_ExistingUser" Display="Dynamic" ForeColor="Red"  runat="server" ErrorMessage="Please enter Email-ID" ValidationGroup="login"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RevtxtEmailId_ExistingUser" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"   
Font-Size="Smaller" ControlToValidate="txtEmailId_ExistingUser" Display="Dynamic" ForeColor="Red" runat="server" 
ErrorMessage="Email-ID not in correct Format" ValidationGroup="login"></asp:RegularExpressionValidator></div>

這將起作用。 如果驗證失敗; 那么只會調用JS函數。

暫無
暫無

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

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