我正在尝试编写一个JS代码,如果给定的数字已经存在于数据库中,它将取消“
btn_submit”按钮.onclick事件。我使用AJAX向数据库查询给定的编号,并确定是否应将数据发送到将上传问题的.php站点。为了确定这一点,我需要numOfRows变量的值,但是因为我在AJAX中将其设置为0,所以validation()函数将在我的AJAX查询完成之前完成,这将导致始终表示给定数字不存在的问题。在数据库中存在(numOfRows将始终保持为0)。在validation()函数的结尾行中将numOfRows与0进行比较之前,如何等待AJAX查询完成?如果数据库中已经存在该数字,则需要在此行中返回false:
document.getElementById(“ btn_submit”)。onclick =验证;
谢谢!
var textAreaList;
var numOfRows = 0;
var finished = false;
document.getElementById("btn_submit").onclick = validation;
textAreaList = document.getElementsByClassName("text_input");
function validation() {
loadNumRows();
try {
document.getElementById('failure').hidden = true;
}
catch(e) {
console.log(e.message);
}
textAreaList = document.getElementsByClassName("text_input");
var failValidation = false;
for (var i = 0; i < textAreaList.length; i++) {
console.log(textAreaList[i]);
if (textAreaList[i].value == "") {
textAreaList[i].style.border = "2px solid #ff0000";
failValidation = true;
} else {
textAreaList[i].style.border = "2px solid #286C2B";
}
}
return !(failValidation || numOfRows != 0);
}
function loadNumRows(){
$.ajax({
url: 'php/SeeIfNumberExists?number=' + document.getElementById('number_inp').value,
type: "GET",
cache: false,
success: function (html) {
numOfRows = parseInt(html);
}
});
}
async/await
与Babel这样的编译器结合使用,以使其在旧版浏览器中运行。您还必须从npm安装此Babel预设和polyfill:npm i
-D babel-preset-env babel-polyfill。
function getData(ajaxurl) {
return $.ajax({
url: ajaxurl,
type: 'GET',
});
};
async function test() {
try {
const res = await getData('https://api.icndb.com/jokes/random')
console.log(res)
} catch(err) {
console.log(err);
}
}
test();
或.then
回调只是编写相同逻辑的另一种方式。
getData(ajaxurl).then(function(res) {
console.log(res)
}
问题内容: 目前,我正在编写使用ajax进行搜索的webdriver测试。如果在键入搜索内容之后并按Enter键之前添加显式等待,则测试效果很好。 但 失败。我正在使用1个虚拟CPU在ec2上运行测试。我怀疑,即使在发送与搜索相关的GET请求之前,我也按回车键;如果在建议之前按回车键,它将失败。 有没有更好的方法来添加显式等待? 问题答案: 您确实可以添加一个明确的等待,以等待诸如 请参阅:htt
问题内容: 我有该代码: 它可以很好地上传图像,但是问题是我找不到一种逐一上传图像的方法,我试图将 async 选项 设置为false, 但是它冻结了网络浏览器,直到所有图像都被上传为止,这不是我所需要的。想要,我想以某种方式模拟此 “ async:false” 选项以执行相同的操作,但不冻结Web浏览器。 这该怎么做 ? 问题答案: 您可以创建一个Promise数组,以便在所有Promise都解
问题内容: 如何让selenium等待日历小部件的加载?现在,我只是在将测试用例导出到junit程序后进行操作。 问题答案: 我会用 这将一直等待,直到元素出现在DOM中为止。 如果您需要检查元素是否可见,则最好使用
问题内容: 如何让硒等待日历小部件的加载?现在,在将测试用例导出到junit程序后,我只是在做一个。 问题答案: 我会用 这将一直等待,直到元素出现在DOM中为止。 如果您需要检查元素是否可见,则最好使用
问题内容: 方案:修改并保存对广告系列的不完整更改 关键是,最后一步中的“错误提示框”是一个ajax调用,它将根据操作成功而带来一个绿色或红色提示框。目前,我要做的是在“然后按保存…”之后,我将进行一次sleep(3),以使其有时间显示此气球。您浪费时间似乎不太明智,也因为在某些时候处理此调用可能花费更多或更少的时间。 你们如何让Behat测试等待Ajax完成,而不仅仅是让野兽入睡? 非常感谢您的
问题内容: 我需要等到我所有的ajax函数都完成后,再继续执行。 我的特殊情况是,在提交表单之前,我需要翻译表单中的某些字段。我通过ajax调用将其转换为外部站点。根据表单中的某些值,我需要进行更多或更少的翻译。完成所有翻译后(如果有),我必须使用ajax验证表单,如果表单有效,则提交。 这是我的方法: 首先,我有一个函数发送ajax调用并对接收到的数据进行处理: 然后,当要提交表单时,我将执行以