我有一个webforms表单,当我提交时,我需要验证。这对我来说是全新的,但这就是我所拥有的。现在,当我点击提交时,即使是空白表单,也会发布。我需要它先验证。我认为我的问题可能在于jquery和PreventDefault()。另外,我如何使用我添加的recaptcha来处理它?它只是在提交时绕过它。
客户端代码:
<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 :(得分:0)
除了RegularExpression验证器(除非你在字段中添加东西,AFAIK不会触发),你需要添加RequiredFieldValidators以确保用户在字段中放置内容。
为两个验证器设置input
。
答案 1 :(得分:0)
为了确保用户不跳过表单输入字段,您必须使用ASP.NET VALIDATION SERVER CONTROLS,它是RequiredFieldValidator控件。而不是RegularExpressionValidator控件,导致此控件的目的仅是检查用户的条目是否与正则表达式定义的模式匹配。此控件可用于根据给定的正则表达式检查电子邮件地址和电话号码。