javascript - 提升导致 jQuery 中的问题

标签 javascript jquery

我最初将全局变量 isValid 声明为 true。然后,当我跨选项卡导航时,我提交了表单,并且在提交时,isValid 的值更改为 false。但是,我第一次导航时,它会提示值 true 而不是 false。由于某种原因,提交函数在警报语句之后被调用。我该怎么做才能在警报语句之前调用它?

var isValid = true;

$('form').on('submit', function(e)) {
    e.preventDefault();
    // rest of the code
    isValid = false;
}

$(document).on('hide.bs.tab', '.nav-pills a', function()) {
    $('form').submit();
    alert(isValid);
}

最佳答案

提交处理程序被异步调用,因此顺序可能是不确定的。您可以将警报调用放在处理程序中,或者考虑使用 jQuery deferred.promise() 之类的东西来控制调用流。

关于javascript - 提升导致 jQuery 中的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44440936/

相关文章:

javascript - Arcgis 获取参数值并在附加到 html 之前在 JS 中进行编辑

javascript - JavaScript 中的空数组

javascript - javascript中的重置功能?

javascript - 放大 viewbox svg - Mapael

javascript - 使用 jquery 对多列进行字母数字排序

javascript - 如何获取全日历的开始和结束时间?

javascript - 将 jQuery 代码设置为在函数完成后触发

javascript - While 循环中的 Json_encode

c# - 如何在asp.net中的jqgrid中的每一行添加一个按钮

javascript - 在元素上切换类,忽略除一个子元素之外的所有元素