【问题标题】:Stopping button OnClick event with javascript使用 javascript 停止按钮 OnClick 事件
【发布时间】:2012-10-08 21:17:59
【问题描述】:

我试图在我的按钮的单击事件发生在服务器端之前运行一些 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 会起作用,但事实并非如此。在服务器端代码运行之前,我的错误消息会显示一秒钟。

我在这里做错了什么?

【问题讨论】:

标签: c# javascript jquery asp.net


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    如果您使用的是 JQuery:

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

    【讨论】:

    • 您需要将此与将 UseSubmitBehavior 设置回 true 相结合才能使其正常工作,否则它只会回发。
    【解决方案3】:

    对我有用的是: 移除 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;
        });
    
    });
    

    【讨论】:

      【解决方案4】:

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

      试试这个

      OnClientClick="return SubmitClick()"
      

      【讨论】:

        猜你喜欢
        • 2020-10-18
        • 2020-11-24
        • 1970-01-01
        • 2022-11-21
        • 2018-01-09
        • 2021-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多