问题标签 [jquery-mobile-ajax]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jquery - jQuery移动多页切换页面前等待ajax返回数据
我在多页表单中使用 jQuery mobile。当用户单击标记为Next Page的按钮时,我想运行 AJAX 请求。根据 AJAX 请求的结果,我想阻止用户访问下一页。
我相信我遇到的问题是我的 AJAX 请求比下一页事件需要更长的时间来回复。因此,它让用户进入下一页而不让 AJAX 请求完成。
至少我认为这就是正在发生的事情。有没有人遇到过这个问题或知道这个问题的解决方案?
HTML:
jQuery:
在上面的代码示例中,当我单击“下一页”按钮(即#btnPage2
)时,它允许我访问第 2 页,即使当我检查控制台日志并且我看到“第 2 页上不允许该用户”时也是如此。
更新:
我尝试将代码调整为以下。它有点工作,但只有在不允许用户访问 page2 时。 e.preventDefault
正在让 ajax 完成,但是,我想不出一种强制更改 page2 的方法。如果允许用户访问 page2 行
$(":mobile-pagecontainer").pagecontainer("change", "#page2");
似乎是导致问题的原因......它只是创建了调用 pageChange 事件的无限循环。我认为这是强制将页面更改为 page2 的方法,但我认为我错了,我无法弄清楚如何强制它更改为 page2
更新#2
我尝试实施@deblocker 修复,但我仍然遇到同样的问题。canNotPass
当我在 ajax 设置为代码的情况下运行以下代码时,true
似乎永远无法达到测试canNotPass
. 因此,它永远不会被设置e.preventDefault
,并且用户被允许访问 page2。
我认为该解决方案与设置延迟对象有关,该对象将允许 ajax 在页面更改发生之前完成。唯一的问题是我知道如何设置/使用延迟对象。
visual-studio-2017 - 带有 apache cordova 的 Visual Studio 2017 应用程序在使用 Debug-Windowsx64-Local Machine 的 AJAX Post 上获得 NetworkError 但适用于 Android 和 IOS
我在使用 Apache Cordova Proyect 时遇到了这个问题……调试与 Android Emulator 和 IOS 完美配合……但是在 Windows 中,我在函数中遇到 NetworkError(结果)……这是我的代码: