3

ボタンのクリック イベントがサーバー側で発生する前に JavaScript を実行しようとしていますが、JavaScript コードが実行され、その直後にサーバー側コードが実行されます。ここに私が持っているものがあります:

<script type="text/javascript" language="javascript">
  $(document).ready(function() {
    SubmitClick = function() {
        if ($("#<%= fuFile.ClientID %>").val() == "") {
            $("#error").html("File is required");

            return false;
        }
    }
  });
</script>

<asp:FileUpload ID="fuFile" runat="server" />

<asp:Button ID="btnSubmit" runat="server" Text="Submit"
  OnClientClick="SubmitClick()" UseSubmitBehavior="false"
  OnClick="btnSubmit_Click" />

<span id="error"></span>

UseSubmitBehavior="false"javascript関数で設定して返すfalseとうまくいくと思っていたのですが、そうではありません。サーバー側のコードが実行される前に、エラー メッセージが 1 秒間表示されます。

ここで何が間違っていますか?

4

4 に答える 4

12

Typically to cancel a client click you would add this return false;

You can update your code to do this and it should work: OnClientClick="return SubmitClick();"

于 2012-10-08T21:22:19.583 に答える
6

JQuery を使用している場合:

$btn.on("click", function (e) {
    e.preventDefault();
}
于 2012-10-08T21:29:28.427 に答える
2

私にとってうまくいったのは、削除OnClientClick="SubmitClick()"UseSubmitBehaviorてtrueに戻すことでした。

次に、$(document).ready()メソッドを次のように変更します

$(document).ready(function () {
    $('#btnSubmit').click(function () {
        if ($("#<%= fuFile.ClientID %>").val() == "") {
            $("#error").html("File is required");

            return false;
        }

        return true;
    });

});
于 2012-10-08T21:34:30.493 に答える
0

You need to return the cancellation of the submitted behavior using return in OnClientClick event.

try this

OnClientClick="return SubmitClick()"
于 2012-10-08T21:22:42.240 に答える