2

PostBackUrl を持つボタンを含むマスター ページがあります。jquery を使用してボタンに検証を追加し、フォームが有効でない場合は false を返します。

ボタン:

<asp:Button ID="btnSearch" runat="server" Text="Search" CssClass="search-button" 
PostBackUrl="/some/rewriten/url" />

ジャバスクリプト:

<script type="text/javascript">
    $(function () {
        $(".search-button").click(function (e) {
            if (!ValidateForm()) {
                return false;
                //e.preventDefault();
            }
        });
    });
</script>

ユーザーが連絡先情報を残すことができるフォームを含む別のページもあります。このフォームには通常のボタンがあります。

<asp:Button ID="btnSend" runat="server" Text="Send" 
CssClass="button" OnClick="btnSend_Click" />

最初のボタンを使用してフォームが有効でない場合、エラー メッセージが出力され、ユーザーは PostBackUrl ページにリダイレクトされません。この後、他のフォームの btnSend ボタンをクリックすると、ポストバック URL が設定され、以前から保存されているかのように、ユーザーは PostBackUrl ページにリダイレクトされます。

なぜこれが起こっているのか、この問題を解決する方法はありますか? これを行うとおそらく問題が解決することをどこかで読みOnClientClick="if(!ValidateForm())? return false;"ましたが、OnClientClick を追加することは私のシナリオでは受け入れられません。検証用のクリック ハンドラーを JavaScript で追加する必要があります。

4

0 に答える 0