gpt4 book ai didi

javascript - 在 IE7 中,如何在 jquery .click 事件期间使用 ajax 调用设置全局变量或元素值?

转载 作者:行者123 更新时间:2023-11-28 21:19:52 25 4
gpt4 key购买 nike

在 IE7 中,当在 .submittable 单击事件中调用此代码时,我必须单击提交按钮两次才能设置 orderCount 全局变量。或者,如果我在隐藏标签上设置属性值,我会得到相同的体验。对于要设置的元素值,我必须单击按钮两次。就像我需要给浏览器更多的时间来处理。有什么建议吗?谢谢你,内特

var orderCount = 0;
$(document).ready(function(){
$('.submittable').click(function(){
setOrderCount()
if ( orderCount == 0 ){
if (validateAcknowledment($(this).attr('id'))){
acknowledgeDay($(this).attr('id'));
}
}
});
});
function setOrderCount(){

// move this up to validate and do a setAtr
var school = $("#school").val();
var orderDate = $("#orderDate").val();
$.ajax({
url: "/fos/inventory/getPreviousWeeklyMenuOrders",
type: "GET",
dataType: 'json',
cache:false,
data: {school: school,
startWeekMonth: Date.parse(orderDate).getMonth(),
startWeekDay: Date.parse(orderDate).getDate(),
startWeekYear: Date.parse(orderDate).getFullYear()
},
success: function(data) {

orderCount = data.orderCount;
if(orderCount > 0){
showErrorMessage("You must Acknowledge prior Weekly Menu Order(s) before acknowledging this week's order", 200, 300);
}

}
});

最佳答案

令人惊奇的是,出现了这么多这样的问题。

默认情况下,AJAX 调用是异步的。您在第 4 行发起调用,然后在异步调用完成之前检查第 5 行的 orderCount。在您第二次单击时,您的异步调用现已完成,并且代码正在执行您认为在第一次单击时应该执行的操作。

您需要将 orderCount 检查逻辑移至匿名“成功”回调函数内,以便它仅在调用完成时执行。或者使ajax调用同步(jquery选项)

关于javascript - 在 IE7 中,如何在 jquery .click 事件期间使用 ajax 调用设置全局变量或元素值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6655597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com