使用必填字段,我可以在不放入数据的情况下提交表单。
同一个global.asax文件在另一个站点上工作,以进行不显眼的验证。
这是一个HTML:
<p>
<asp:Label runat="server" ID="lblFirstName" AssociatedControlID="txtFirstName">
First name:
<span class="soft">
(required)
</span>
<asp:RequiredFieldValidator runat="server" ID="reqFirstName" ControlToValidate="txtFirstName" CssClass="red label" Text="Required" />
</asp:Label>
<asp:TextBox runat="server" ID="txtFirstName" MaxLength="50" />
</p>
这是global.aspx
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
Dim Item As New ScriptResourceDefinition
With Item
.Path = "/assets/scripts/jquery-1.7.2.min.js"
.DebugPath = "/assets/scripts/jquery-1.7.2.min.js"
.CdnPath = "//ajax.microsoft.com/ajax/jQuery/jquery-1.7.2.min.js"
.CdnDebugPath = "//ajax.microsoft.com/ajax/jQuery/jquery-1.7.2.min.js"
End With
ScriptManager.ScriptResourceMapping.AddDefinition("jquery", Item)
End Sub
答案 0 :(得分:1)
如果您使用经典的WebForms验证,那么在按钮的单击处理程序中,您需要检查页面是否有效:
if (Page.IsValid())
{
// you logic
}
对于客户端验证,您需要在javascript中进行验证。为asp按钮附加OnClientClick处理程序并使用jquery验证器检查表单是否有效
答案 1 :(得分:0)
看起来您可能会将HTML5表单属性与asp.net服务器验证器混淆?
您可以在文本框中输入未输入数据的表单,因为缺少表单属性required="required"
。
变化:
<asp:TextBox runat="server" ID="txtFirstName" MaxLength="50" />
要:
<asp:TextBox runat="server" ID="txtFirstName" MaxLength="50" required="required" />
这将阻止在支持HTML5表单属性的浏览器上提交表单。
答案 2 :(得分:0)
我不愿意承认这是我的一个noob错误,花了很多时间调查一些简单的东西。非CDN ScriptResourceDefinition的路径是一封信。 “资产”不是复数。再次感谢你的帮助。很高兴知道Page.IsValid。