按钮的Onclick事件仅触发一位用户两次?

时间:2019-05-20 12:39:21

标签: javascript internet-explorer

很抱歉,标题似乎有点含糊,但我完全不知道为什么现在可能会发生这种情况。

我有一个在线应用程序,该应用程序已被一个团队使用了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);
                }
}
            });

我只能认为这可能是特定于该人的机器的东西,但以前从未在我的任何其他应用程序中遇到过。

1 个答案:

答案 0 :(得分:0)

尝试使用不同的浏览器测试此事件,如果它们都单击两次,则可能是鼠标坏了,请尝试更换新的鼠标。

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

<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>

您也可以参考本文来prevent multiple click按钮。