2015-04-22 57 views
-2

我有一个webforms表单,当我提交时,我需要验证。这对我来说是全新的,但这里是我的。现在,当我点击提交时,即使是空白表格,也会发布。我需要它首先验证。我想我的问题可能是jQuery和PreventDefault()。另外,我如何才能使用我添加的recaptcha?它只是在提交时绕过这一点。Asp.net Webforms验证 - RegularExpressionValidator

客户端代码:

   <form id="contactForm"> 
        <div class="row"> 
         <div class="col-md-4"> 
          <div class="form-group"> 
           <asp:TextBox runat="server" ID="frmFirstName" CssClass="form-control"></asp:TextBox> 
           <asp:RegularExpressionValidator runat="server" CssClass="error" ID="FirstNameValid" ControlToValidate="frmFirstName" Text="Please enter your first name"></asp:RegularExpressionValidator> 
          </div> 
         </div> 
         <div class="col-md-4 pad_lr_8"> 
          <div class="form-group"> 
           <asp:TextBox runat="server" ID="frmLastName" CssClass="form-control"></asp:TextBox> 
           <asp:RegularExpressionValidator runat="server" CssClass="error" ID="LastNameValid" ControlToValidate="frmLastName" Text="Pleaseenter your last name"></asp:RegularExpressionValidator> 
          </div> 
         </div> 
         <div class="col-md-4"> 
          <div class="form-group"> 
           <asp:TextBox runat="server" ID="frmEmail" CssClass="form-control"></asp:TextBox> 
           <asp:RegularExpressionValidator runat="server" CssClass="error" ID="EmailValid" ControlToValidate="frmEmail" Text="Please enter your email"></asp:RegularExpressionValidator> 
          </div> 
         </div> 
        </div> 
        <div class="row pad_tb_8"> 
         <div class="col-md-12"> 
          <div class="form-group"> 
           <asp:TextBox runat="server" TextMode="MultiLine" Rows="10" CssClass="form-control" ID="frmMessage"></asp:TextBox> 
           <asp:RegularExpressionValidator runat="server" CssClass="error" ControlToValidate="frmMessage" Text="Please enter your message"></asp:RegularExpressionValidator> 
          </div> 
         </div> 
        </div> 
        <div class="row"> 
         <div class="col-md-7" style="padding-right: 8px;">         
          <recaptcha:RecaptchaControl ID="recaptcha" runat="server" Theme="white" PublicKey="" PrivateKey=""/> 
         </div> 
         <div class="col-md-5 hidden-xs hidden-sm"> 
          <button type="submit" runat="server" OnServerClick="SendEmail" class="btn btn-orange">Send <i class="fa fa-caret-right"></i></button> 
         </div> 
        </div> 
        <div class="row"> 
         <div class="col-sm-12 hidden-md hidden-lg"> 
          <button type="submit" runat="server" OnServerClick="SendEmail" class="btn btn-orange">Send <i class="fa fa-caret-right"></i></button> 
         </div> 
        </div> 
        <div class="row pad_tb_8"> 
         <div class="col-md-12"> 
          <asp:Label runat="server" ID="lblResult"></asp:Label> 
         </div> 
        </div> 
       </form> 

的jQuery:

<script> 
    jQuery(document).ready(function ($) { 
      $("#contactForm").submit(function (e) { 
       e.preventDefault(); 
      }); 
     }); 
</script> 

回答

0

为了确保用户不会跳过表单输入字段,您必须使用ASP.NET VALIDATION SERVER CONTROLS(RequiredFieldValidator控件)。而不是RegularExpressionValidator控件,导致此控件的用途仅用于检查用户的条目是否与正则表达式定义的模式匹配。这个控件很适合用来根据给定的正则表达式来检查电子邮件地址和电话号码。

0

除了正则表达式验证(其中,除非你把东西在场上AFAIK不会闪光),你需要添加RequiredFieldValidators确保用户在该字段中放置某些内容。

为两个验证器设置Display="Dynamic"

相关问题