1

ASP.NET検証コントロールを使用してフォームのフィールドを検証し、ページ内の特定のアンカーにフォーカスを設定する必要がありますが、TrueSetFocusOnErrorに設定されていてもページの上部に移動し続けます。を追加してみましたが、検証前に実行されるため、ページの先頭に戻ります。CustomValidatorClientValidationFunction

私もこれを試しました:

検証の概要にフォーカスを設定しますか?

しかし、最初のリンクは使用できなくなり、2番目のリンクは機能しなくなります(そのため、回答は自己完結型である必要があります!)。

これが私のコードのサンプルです:

    <asp:ValidationSummary ID="ValidationSummary1" ClientIDMode="Static"
    runat="server" HeaderText="[custom message in my native language]"
    ValidationGroup="Valida" CssClass="msg_erro" />

    <asp:RequiredFieldValidator ID="vldNome" runat="server"
    ControlToValidate="txtNome" ValidationGroup="Valida" Display="Dynamic"
    ErrorMessage="blah blah blah" SetFocusOnError="True" Text="*" />

    //a bunch o others validatiors...

    <asp:ImageButton runat="Server"
    ImageUrl="~/img/anuncie/btn-cadastrar.png" ID="btnEnviar"
    ValidationGroup="Valida" CssClass="btn-cadastrar" />

私が言ったように、私は特定のアンカーに焦点を合わせる必要がありますが、ValidationSummary私のフィールドはページの上部から遠くに始まるので、または任意のフィールドに焦点を合わせるのもいいでしょう。

ありがとう。

アップデート

異なるブラウザでの異なる動作:

  • IE-送信をクリックすると、フィールドにフォーカスが正しく設定されます(IEのバージョンによって異なります)
  • FF-最初に送信をクリックすると、ページの上部に移動し、2回目以降は、フィールドにフォーカスが設定されます。
  • Chrome-動作しません。
4

1 に答える 1

0

jQueryValidationプラグインに切り替えました。

于 2013-02-04T13:47:28.070 に答える