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

私はそれが私の初心者の間違いであったことを認めたくないので、簡単なことを調査するのに多くの時間を費やしました. CDN 以外の ScriptResourceDefinition のパスが 1 文字ずれていました。「資産」は複数形ではありませんでした。あなたのご親切に感謝します。Page.IsValid について知っておくと便利です。

于 2013-09-24T22:04:15.970 に答える
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 に答える