Javascript 在jQuery Mobile和IE上单击事件激发两次
我有一个jQuery移动应用程序,它依赖于弹出窗口来运行考勤系统。除了Windows 8+上的IE 9+版本外,该系统工作正常 当按下在客户机上签入/签出的按钮时,POST请求将发送到处理程序页面以管理请求(即验证数据、输入数据库),然后再转发到相关的客户机条目 看起来发生的是按钮事件被触发了两次。第一次被标记为“中止”(如F12开发者工具的Javascript 在jQuery Mobile和IE上单击事件激发两次,javascript,jquery,html,internet-explorer,jquery-mobile,Javascript,Jquery,Html,Internet Explorer,Jquery Mobile,我有一个jQuery移动应用程序,它依赖于弹出窗口来运行考勤系统。除了Windows 8+上的IE 9+版本外,该系统工作正常 当按下在客户机上签入/签出的按钮时,POST请求将发送到处理程序页面以管理请求(即验证数据、输入数据库),然后再转发到相关的客户机条目 看起来发生的是按钮事件被触发了两次。第一次被标记为“中止”(如F12开发者工具的Result列所示),然后再次调用(我会发布图像,但没有足够的声誉)。然而,调用似乎正在进入处理程序页面,尽管被认为已中止,因为数据库中出现了两个条目 按钮
Result
列所示),然后再次调用(我会发布图像,但没有足够的声誉)。然而,调用似乎正在进入处理程序页面,尽管被认为已中止,因为数据库中出现了两个条目
按钮的代码如下所示:
<button data-inline="true" data-mini="true" data-theme="b" data-ajax="false" id="submitBtn" onClick="this.form.submit(); this.disabled=true;">Check Out / Split Visit</button>
标题代码:
<!DOCTYPE html>
<html>
<head>
<title>SMNCC App</title>
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="https://portal.suemann.com.au/favicon.ico" />
<!-- <script type="text/javascript" src="./js/timeTrack.js"></script>!-->
<script type="text/javascript" src="./js/readNewsItem.js"></script>
<link rel="stylesheet" href="./jqueryMobile/jquery.mobile.min.css" /> <!-- Original File: jquery.mobile-1.3.2.min.css !-->
<link rel="stylesheet" href="./themes/hartijaPrint.css" type="text/css" media="print"> <!-- Hartija print CSS framework !-->
<script type="text/javascript" src="./jqueryMobile/jquery.min.js"></script> <!-- Original File: jquery-1.10.2.min.js !-->
<script type="text/javascript" src="./jqueryMobile/disableAjax.js"></script>
<script type="text/javascript" src="./jqueryMobile/jquery.mobile.min.js"></script> <!-- Original File: jquery.mobile-1.3.2.min.js !-->
</head>
<body
SMNCC应用程序
我没有运行Windows 8,因此无法测试它,但您可以使用jQuery检查按钮是否已按下
例如:Html代码:
<button id="mybutton">Click me!</button>
当然,这假设当您说按钮触发两次时,您的意思是click事件正在运行两次。如果单击事件仅触发一次,但发送请求触发两次,则代码将不起作用。IE错误。。。这是开发者最糟糕的噩梦:-)告诉我吧。。。网络开发不是我“正常”的日常工作,这是有原因的!这正是正在发生的事情——“单击”事件被触发两次——第一次“中止”,第二次正常完成。我将尝试你的代码并报告回来!工作就像做梦一样-谢谢Nathan!
<button id="mybutton">Click me!</button>
var alreadySent = false;
$(document).ready(function() {
$("#myButton").click(function(event) {
event.preventDefault();
if (!alreadySent) {
sendPostRequestOrWhatever();
alreadySent = true;
}
$(this).prop("disabled", true);
});
});