13

Web ユーザー コントロールにクライアント側 (JQuery Javascript) の検証を追加したいだけです。OnClientClick ハンドラーを配置すると、関数が呼び出されます。しかし、「false」を返しても、OnClick メソッドは常に起動されます。私は何を間違っていますか?

私はVS 2010を使用しており、JQuery 1.4.2で4.0フレームワークをターゲットにしています。および JQuery UI 1.8.4。

サンプルコードは次のとおりです。

<td style="text-align:right"><asp:Button ID="btnAddSave" OnClientClick="return ValidateMail();" OnClick="btnAddSave_Click" runat="server" Text="Submit" /></td>

スクリプト方法:

function ValidateMail() {
alert("Bouton clicked");
return false;

}

Page_Load イベントにブレークポイントを設定すると、入って btnAddSave_Click イベントも実行されることがわかります。

4

7 に答える 7

12

何らかの理由で、jquery イベント ハンドラーをアタッチしていませんでしたが、機能しませんでした。

実際に機能したのは次のとおりです。

OnClientClick="if (validate_form() == false) return(false);"
于 2012-09-05T08:54:00.200 に答える
8

を返すクリック イベント ハンドラ (jquery 経由で登録) はありますtrueか? その場合、 の戻り値OnClientClickは無視されます。

私の質問 (および回答) を見てください: OnClientClick から false を返さない理由は、ポストバックをキャンセルします

于 2011-07-25T06:23:19.543 に答える
4

に変更してみてください

OnClientClick="ValidateMail(); return false;" 
于 2011-06-17T18:15:40.063 に答える
1

奇妙なことに、これは私にとってはうまくいきました:

OnClientClick="javascript:SubmitTableData(); return CanSubmit();"

最初の関数呼び出しで戻り値送信を設定します。

function CanSubmit() {    
    return submit;
}

これが誰かに役立つことを願っています。

于 2020-04-17T22:12:14.067 に答える