2016-01-08 4 views
0

Я работаю над веб-формами asp.net. На странице ascx у меня есть UpdatePanel. В пределах UpdatePanel1 у меня есть ModalPopupExtender из Ajax Control Toolkit, который отображает текстовое поле для ввода электронной почты, которое я хочу проверить для ввода электронной почты в правильном формате. Я пробовал два подхода. В первом я использовал asp:RegularExpressionValidator. Во-вторых, я добавил яваскрипта функцию на событие щелчка на стороне клиента, как так:Regularexpressionvalidator не работает на asp.net updatepanels

OnClientClick="if(!CheckEmail()){return false};" 

Ни один из них не работает, а запись из всплывающего модального всегда отправляют на сервер ли ввод электронной почты является правильным или нет , Я убедился, что ввод электронной почты текстовое поле имеет CausesValidation="True"

<asp:UpdatePanel> 
    <asp:Panel ID="ConfirmAdd" runat="server" CssClass="modalPopup" style="display: none;" Width="530px" > 
    <div style="text-align:center"> 
    <b>Create New User</b> 
    </div> 
    <table width="100%"> 
    <tr> 
     <td>User ID (Email):</td> 
     <td><asp:TextBox ID="email" Width="300px" runat="server" MaxLength="50" CausesValidation="True" ClientIDMode="Static" /> 
      <asp:RequiredFieldValidator id="RequiredFieldValidator2" runat="server" Text="Email required." ControlToValidate="email" 
       ValidationGroup="adduser" ></asp:RequiredFieldValidator> 
      <asp:RegularExpressionValidator id="EmailRegularExpressionValidator" ControlToValidate="email" 
       ValidationExpression="\b[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}\b" 
       ErrorMessage="Email must be in valid format" Text="Email must be in valid format" 
       EnableClientScript="False" runat="server" ValidationGroup="adduser" SetFocusOnError="True" /> 
     </td> 
    </tr> 

    </table> 
    <div style="text-align:center"> 
    <br /> 
    <asp:button id="Button1" runat="server" OnClick="Button1_Click" UseSubmitBehavior="false" Text="Add" ValidationGroup="adduser" OnClientClick="if (!CheckEmail()){return false;}" />&nbsp;<asp:Button ID="RefCancel" runat="server" Text="Cancel" ValidationGroup="none" /> 
    </div> 


</ContentTemplate> 

+0

Вы можете разместить код? – CodingGorilla

+0

Зачем использовать Ajax-элементы управления, когда вы можете добиться всего этого с помощью jQuery намного проще, и он работает на всех браузерах. – Kami

+0

Это уже существовавшее приложение. – Massey

ответ

0

Вы можете попробовать использовать загрузочный модальность. Создание кнопки для открытия модального:

<input type="button" id="shModal" 
      name="shModal" class="btn btn-success btn-outline" 
      data-target="#myModal" data-toggle="modal" value="New" /> 

Затем в модальной добавить текстовое поле:

<div class="container row form-horizontal"> 

     <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 
      <div class="modal-dialog"> 
      <div class="modal-content"> 
       <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
       <h4 class="modal-title" id="myModalLabel">Input Email</h4> 
       </div> 
       <div class="modal-body"> 
       <div class="row"> 
        <div class="form-group"> 
         <asp:Label runat="server" CssClass="control-label col-md-4">Email</asp:Label> 
         <div class="col-md-6"> 
          <asp:TextBox runat="server" ID="txtEmail" CssClass="form-control text-uppercase"></asp:TextBox> 
         </div> 
        </div> 
       </div> 

       </div> 
       <div class="modal-footer"> 
        <asp:Button runat="server" ID="cmdSave" CssClass="btn btn-info pull-left" Text="Save" 
          OnClick="cmdSave_Click" OnClientClick="return ValidateEmail();" /> 
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
       </div> 
       </div> 
      </div> 
      </div> 
</div><!--Item Modal--> 

Добавьте Jquery код подтверждения:

function ValidateEmail(){ 
     if(!isEmailValid()){ 
      return false; 
}else{ 
alert('boyyyya, email is valid!'); 
} 
     } 
Смежные вопросы