使用javascript停止按钮OnClick事件

时间:2012-10-08 21:17:59

标签: c# javascript jquery asp.net

我正在尝试在我的按钮的点击事件发生在服务器端之前运行一些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 个答案:

答案 0 :(得分:12)

通常,要取消客户点击,您需要添加此return false;

您可以更新代码以执行此操作,它应该有效:OnClientClick="return SubmitClick();"

答案 1 :(得分:6)

如果您使用的是JQuery:

$btn.on("click", function (e) {
    e.preventDefault();
}

答案 2 :(得分: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;
    });

});

答案 3 :(得分:0)

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

试试这个

OnClientClick="return SubmitClick()"