0

有了必填字段,我可以在不输入数据的情况下提交表单。

相同的 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
4

3 回答 3

1

如果您使用的是经典的 WebForms 验证,那么在按钮的单击处理程序中,您需要检查页面是否有效:

if (Page.IsValid())
{
     // you logic
}

对于客户端验证,您需要在 javascript 中进行验证。为 asp 按钮附加 OnClientClick 处理程序并使用 jquery 验证器检查表单是否有效

于 2013-09-23T23:58:47.183 回答
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 表单属性的浏览器上提交表单。

于 2013-09-23T23:32:20.453 回答
0

我不想承认这是我的一个菜鸟错误,并且花了很多时间调查一些简单的事情。非 CDN ScriptResourceDefinition 的路径偏离了一个字母。“资产”不是复数形式。再次感谢你的帮助。很高兴了解 Page.IsValid。

于 2013-09-24T22:04:15.970 回答