繁体   English   中英

按钮上的Onclick事件仅针对一个用户触发两次?

[英]Onclick event on button firing twice for one user only?

如果标题看起来有点模糊,请道歉,但我完全不知道为什么现在可能会发生这种情况。

我有一个在线应用程序已经被一个团队使用了超过2年,我们在6个月前有一个新的启动器,当使用该应用程序时,大约每月一次,一个事件为这一个用户触发两次,而没有其他人。

这是一个非常基本的onclick事件,触发控制器,更新数据库,我试图复制问题,但我无法在其他任何人的机器上。

<button class="btn btn-primary" type="button" onclick="advanceJob()">Advance Job</button>


function advanceJob() {
var details = {
                Id: selectedJob,
                MovedOnBy: '@ViewBag.DisplayName',
                Frequency: $('#jobFrequency').val()
            }
            $.ajax({
                type: 'POST',
                url: '/Home/MoveJobOn',
                cache: false,
                data: details,
                success: function (data) {
                    $('#jobModal').modal('hide');
                    alert(data);
                },
                error: function (x, y, z) {
                    alert(x.responseText + " " + y.responseText + " " + z.responseText);
                }
}
            });

我只能认为它可能是那个人机器特有的东西,但在我的任何其他应用程序之前从未遇到过这种情况。

尝试使用不同的浏览器测试此事件,如果它们全部点击两次,可能问题是鼠标坏了,尝试更换新鼠标。

此外,您还可以参考以下代码,在单击按钮后禁用该按钮。

<button class="btn btn-primary" type="button" onclick="advanceJob(this)">Advance Job</button>
<span id="output"></span>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
    var count = 0;
    function advanceJob(e) {
        $(e).attr("disabled", true);
        //after 3 seconds, enable the button.
        setTimeout(function () {
            $(e).removeAttr("disabled");
        }, 3000);
        count++;
        $("#output").html(count.toString());
        ////other actions
        //var details = {
        //    Id: selectedJob,
        //    MovedOnBy: '@ViewBag.DisplayName',
        //    Frequency: $('#jobFrequency').val()
        //}
        //$.ajax({
        //    type: 'POST',
        //    url: '/Home/MoveJobOn',
        //    cache: false,
        //    data: details,
        //    success: function (data) {
        //        $('#jobModal').modal('hide');
        //        alert(data);
        //    },
        //    error: function (x, y, z) {
        //        alert(x.responseText + " " + y.responseText + " " + z.responseText);
        //    }
        //}
    };
</script>

您也可以参考这篇文章以防止多次单击该按钮。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM