很抱歉,标题似乎有点含糊,但我完全不知道为什么现在可能会发生这种情况。
我有一个在线应用程序,该应用程序已被一个团队使用了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);
}
}
});
我只能认为这可能是特定于该人的机器的东西,但以前从未在我的任何其他应用程序中遇到过。
答案 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按钮。