5

私のapsバリデーターで次の問題に直面しました。aspバリデータ付きのテキストボックスがあります。ユーザーがテキストボックスを空のままにして送信ボタンをクリックすると、検証メッセージが表示されますが、ページはポストバックします。これを引き起こす可能性のあるアイデアはありますか?

バリデータは次のとおりです。

<asp:RequiredFieldValidator ID="valReqName" runat="server" 
    ControlToValidate="txtName" Display="Dynamic" ErrorMessage="blq blq">
</asp:RequiredFieldValidator>

<asp:TextBox ID="txtName" style="font-family:Tahoma, Geneva, sans-serif; 
    color: #4F4F4F;" runat="server">
</asp:TextBox>

どうもありがとう、アントン

編集

UpdatePanel に 2 つのタブがあります。検証の問題は、ユーザーがいくつかの入力を行う 2 番目のタブの一部です。このトリガーを削除すると:

<asp:AsyncPostBackTrigger ControlID="lnkUpload" EventName="Click" />

ポストバックの問題は解決しましたが、別の問題が発生しました。少なくともポストバックは削除されます。すべての回答に感謝します。

(lnkUpload は 2 番目のタブ リンク ボタンの ID です)

編集2

さて、ここに解決策があります。私の問題はこの記事と同じようです。http://jeffreypaarhuis.com/2011/08/08/validation-not-working-in-updatepanel/

4

4 に答える 4

4

他の人に役立つかもしれないので、解決策を投稿しています。

"これが問題です: バリデーターがページに読み込まれると、クライアント側の検証をサポートするための JavaScript が少し作成されます。デフォルトでは表示されないユーザーコントロール内にバリデーターを配置し、このユーザーコントロールが更新パネルにある場合、それはそのJavaScriptを適切に作成しません.これが解決策です: updatepanelの外で、私は上記のように、ダミーの検証グループを使用してダミーのテキストボックスを持つダミーのバリデータを作成します

<%--dummy validator to make ajax validation possible--%>
<asp:RequiredFieldValidator runat="server" CssClass="hidden" ControlToValidate="dummyTextBox" ValidationGroup="dummy"></asp:RequiredFieldValidator>
<asp:TextBox runat="server" ID="dummyTextBox" CssClass="hidden"></asp:TextBox>

私の問題はこの記事と同じようです。

于 2012-07-30T14:42:15.550 に答える
2

このスレッドで解決策を試しましたか:

ASP.net RequiredFieldValidator がポストバックを妨げない

web.config から次の行を削除します

 <xhtmlConformance mode="Legacy"/>

「この行を削除すると、検証は期待どおりに機能します。Web アプリを .net 1.1 から .net 3.5 にアップグレードするときに、VisualStudio がその行を web.config に追加する方法についてのブログ投稿が多数見つかりました。

ブログの投稿は主に、そのフィールドが .net の AJAX に干渉する方法について不平を言っていましたが、同様の方法で RequiredFieldValidator に対して発行された JavaScript を混乱させていると推測しています。」

于 2012-07-30T07:05:00.997 に答える
1

バリデーター(valReqName) とボタンに ValidationGroup を追加してください。

于 2012-07-30T07:10:52.567 に答える
0

この属性をバリデーターに追加します。

 EnableClientScript="True"
于 2014-09-22T07:40:12.283 に答える