2015-12-28 2 views
1

Я пытаюсь запустить обязательный полевой валидатор ASP.NET, как показано ниже. Я не хочу, чтобы функция JavaScript срабатывала, пока и до тех пор, пока требуемый полевой валидатор не вернет true. В моем случае я стреляю по нажатию кнопки и ничего не возвращает.RequiredField Validator не работает

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> 
+1

упоминания в 'RFVtxtEmailId_ExistingUser' валидатор и всех других валидаторов – Vikrant

ответ

2

В соответствии с вашим 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> 

Надеюсь, что вам поможет

Посмотрите на скриншот ниже: -

группу проверки

enter image description here

2

Вы можете справиться с этим без сценариев: давая

CausesValidation = "истина" и ValidationGroup = "someGroupName "

своего <asp:ImageButton/>, а также ValidationGroup = "FormValidation" `к вашим валидаторам:

1

УПОМИНАЕТ 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.

Смежные вопросы