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>

我认为在 javascript 函数中设置UseSubmitBehavior="false"和返回false会起作用,但事实并非如此。在服务器端代码运行之前,我的错误消息会显示一秒钟。

我在这里做错了什么?

4

4 回答 4

12

通常要取消客户点击,你会添加这个return false;

您可以更新您的代码来执行此操作,它应该可以工作: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

您需要在 OnClientClick 事件中使用 return 来返回取消提交的行为。

试试这个

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