[英]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.