如何等待ajax请求?

2024-01-03

我正在尝试编写一个 JS 代码,如果给定的数字已存在于数据库中,该代码将取消“btn_submit”按钮 .onclick 事件。我使用 AJAX 查询数据库中的给定数字,并确定是否应将数据发送到将上传问题的 .php 站点。为了确定这一点,我需要 numOfRows 变量的值,但因为我在 AJAX 中设置它,所以它将保持为 0。validation() 函数将在我的 AJAX 查询完成之前完成,这会导致问题始终表明给定的数字不存在存在于数据库中(numOfRows 将始终保持为 0)。 在将 valid() 函数的结束行中的 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);               
        }
    });
}

use of async/await使用像 Babel 这样的转译器,让它在旧浏览器中工作。你还必须从 npm 安装这个 Babel 预设和 polyfill:

npm i -D babel-preset-env babel-polyfill

Then

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();

or the .then回调只是编写相同逻辑的另一种方式。

getData(ajaxurl).then((res) => {
    console.log(res)
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何等待ajax请求? 的相关文章

  • 比较表中的行以了解字段之间的差异

    我有一个包含 20 多列的表 客户端 其中大部分是历史数据 就像是 id clientID field1 field2 etc updateDate 如果我的数据如下所示 10 12 A A 2009 03 01 11 12 A B 200
  • mouseover 和 mouseout 事件在子进程上触发

    代码 div div div div 如果我将鼠标悬停在Navigation the Drop Downdiv 向下滑动 如果我将鼠标移开 它会向上滑动 问题是如果我将鼠标悬停在孩子上Drop Downdiv它也向上滑 动 有谁知道我该如何
  • 覆盖函数(例如“警报”)并调用原始函数?

    我想用调用原始版本的新版本覆盖 Javascript 内置函数 类似于用调用的版本覆盖类上的方法 super有多种语言版本 我怎样才能做到这一点 例如 window alert function str do something addit
  • nodejs mocha suite 未定义错误

    我正在尝试使用摩卡运行一些测试 但似乎无法克服这个错误 E tdd nodejs cart gt mocha cart test js node js 201 throw e process nextTick error or err Re
  • PHP 中的 MongoDB - 如何将项目插入集合中的数组中?

    这必须很容易 但我似乎无法弄清楚 假设我有一个集合users这是集合中的第一项 id ObjectId 4d8653c027d02a6437bc89ca name Oscar Godson email email protected cdn
  • 将上部字符转换为下部字符,将下部字符转换为上部字符(反之亦然)[重复]

    这个问题在这里已经有答案了 我需要将某些字符串中的所有较低字符转换为较高字符 并将所有较高字符转换为较低字符 例如 var testString heLLoWorld 应该 HEllOwORLD 转换后 在不保存临时字符串的情况下实现此目的
  • 如何创建自定义元素扩展类的新实例

    我正在尝试以下示例谷歌开发者网站 https developers google com web fundamentals getting started primers customelements extendhtml我收到错误 Typ
  • 在overlayImage中应用滤镜的方法在哪里?

    我想在overlayImage中应用一个过滤器 唯一的方法是在渲染后在整个画布上应用过滤器 对此没有内置支持 但很容易 破解 var overlayImageUrl load overlay image first fabric Image
  • PDO SQLSRV 和 PDO MySQL 在获取 int 或 float 时返回字符串

    当您获取时 PDO MS SQL Server 和 PDO MySQL 都会返回一个字符串数组 即使列的 SQL 类型本应是数字类型 例如 int 或 float 我设法解决了这个问题 但我想了解为什么它们一开始就这样设计 是不是因为PDO
  • Javascript 中的线性回归 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想在网络浏览器中用 Javascript 进行最小二乘拟合 目前 用户使用 HTML 文本输入输入数
  • 按通用值对值进行分组:userid 和 ipaddress

    我正在解决数据库中的一个问题 我正在尝试查找使用多个帐户的用户 我有一个用户 ID 和使用的 IP 地址的列表 如下所示 用户 ID IP 地址 1 IP 地址 13 2 IP 地址 23 1 IP 地址 12 4 IP地址56 9 IP
  • PHP - Filter_var 替代方案?

    我构建了一个 php 脚本来输出以表单形式发布的数据 但遇到了问题 网站将运行的服务器运行 PHP 5 1 6 此版本的 PHP 不支持 filter var 我需要知道短期内的替代方案 最好是昨天 但在 Google 或 Stack Ov
  • Spring-roo REST JSON 控制器损坏日期字段

    我有一个以两种方式使用的数据实体 我在页面加载时用其中的一些数据填充表格 当您单击该列的一行时 我通过 AJAX 获取该项目的详细信息并将其显示在表单字段中 我在服务器端使用 Spring Roo 生成的 REST 端点 在客户端使用 Ba
  • 如何按字母顺序排序并先小写排序

    如何获得以下排序的结果Food to Eat然后是 食物123 显然 第二个较低的 o 应该将 要吃的食物 带到排序后的第一个项目中 我很惊讶这个问题不容易通过谷歌找到答案 这个壮举没有包含在 javascript 标准中也让我感到惊讶 F
  • 将 div 文本分配给变量然后显示它

    我有一个简单的任务 我试图完成学习 JavaScript 但一直无法找到明确的答案 这是代码 div Testing div 基本上我希望将方框 div 中的文本存储到变量中 然后 我想在页面的不同部分显示该变量的文本 使用上面的代码我得到
  • 将多个对象传递给我的控制器

    我将一个对象传递给我的控制器 如下所示 var form JSON stringify subRevisedRequest frmRevised val subSubcontractor frmSubcontractor val subDe
  • 通过 __get() 通过引用返回 null

    快速规格 PHP 5 3 error reporting 1 the highest 我正在使用 get 通过引用技巧神奇地访问对象中任意深度的数组元素 快速示例 public function get key return isset t
  • facebook php - 如何获取专辑封面照片

    我需要使用 PHP SDK Facebook 获取专辑封面照片 我尝试 https graph facebook com ALBUM ID picture type album 但我得到默认图像 例如 获取用户 https graph fa
  • 利用重力效果拖动元素

    我想完成类似于 photoshop com 和此网站的功能 http mrdoob com projects chromeexperiments google gravity http mrdoob com projects chromee
  • jqGrid刷新本地数据(JSON对象)

    我正在尝试将 jqGrid 与本地数据一起使用 但发现了几个问题 我正在初始化这样的事情 function refreshGrid grid results grid jqGrid data results datatype local c

随机推荐

  • 始终并行运行恒定数量的子进程

    我想使用子进程让编写的脚本的 20 个实例并行运行 假设我有一个包含大约 100 000 个条目的大 URL 列表 并且我的程序应该控制我的脚本的 20 个实例始终在该列表上工作 我想将其编码如下 urllist url1 url2 url
  • C++11 中的 C 风格回调

    在 C 11 项目中 我使用需要 C 风格回调的 C 风格第三方库 在我的例子中为curl 为了实现这一点 我使用了 指向成员的指针 运算符 size t c callback wrapper char ptr size t size si
  • onClick 不起作用

    我想使用 JS 将表格行转换为链接 我的它看起来像这样 tr 但是 当我尝试单击时 它并没有按照我想要的方式进入页面 事实上 点击似乎没有任何动作 有什么帮助吗 Edit 至于引用 我忘了提及我是用 PHP 来回应这一点的 这是我更新的代码
  • 外键引用同一个表

    有一次面试测试 下面是表格和结构 Table Person id name dob dod mother id father id Primary Key id Foreign Key mother id references Person
  • 在 Electron 应用程序中导航 Angular 路线时出现空白屏幕

    我目前正在使用 Electron 编写一个桌面混合应用程序 并与 AngularJS 集成进行路由等 请参阅以下角度配置 app config function routeProvider locationProvider routePro
  • 在 C# 中解析 SQL 字符串

    我需要解析一个Command CommandText 我不想运行查询 我只想看看如果执行命令 查询是否会成功 说我有 SELECT FROM SomeTable WHERE 1 1 该字符串将会成功 but SELECT FROM Some
  • 如何知道用户何时离开页面并刷新页面

    我想在用户离开页面之前进行 AJAX 调用 基本上是在离开页面之前和刷新页面之前 如何才能做到这一点 我试图用 jQuery 搜索一些东西 但没有得到任何结果 我尝试使用以下代码 window onbeforeunload function
  • mysql 查询是否可以返回 true/false 而不是值?

    我有一张桌子 custID orderID orderComponent 1 123 pizza 1 123 wings 1 234 breadsticks 1 239 salad 2 456 pizza 2 890 salad 我有一个值
  • 在构建情况下验证所属关联

    我有一个任务模型 它有很多任务 并且任务属于任务 为了安全起见 我对任务模型进行了验证 validates presence of mission id validates numericality of mission id 但问题是 当
  • IPFS:如何将文件添加到现有文件夹?

    给定一个相当大的文件夹 它已经被推送到网络 并在本地删除 如何将文件添加到该文件夹 而不重新下载整个文件夹 你只能通过使用来做到这一点ipns再次下载后ipfs get 如果它仍然固定到本地存储 那么应该会很快 1 首先将您的文件夹递归添加
  • 为什么 `vector v{{5,6}};` 有效?我以为只允许使用一对 {}?

    给定一个类A有两个构造函数 取initializer list
  • 在 C++ 中使用 SSE 将两个 32 位整数向量相乘的最快方法

    我有两个无符号向量 大小均为 4 vector
  • EPPlus 依赖循环

    从 PowerShell 安装 EPPlus 时 我得到以下信息 所有命令都是第一次运行 PackageSource Get PackageSource Name PSGallery if PackageSource IsTrusted S
  • 如何在 django 视图中将一个页面重定向到另一个页面时延迟 5 秒

    我使用了这段代码 但我想要的延迟没有实现 我希望它在那里停留至少 5 秒 from django http import HttpResponseRedirect def myview request return HttpResponse
  • mysqli_real_escape_string 安全吗?

    我是 PHP 新手 我意识到使用 php 表单 带有用户和传递文本输入 的数据库连接是完全不安全的 这是可行的 但不安全 所以 我读过有关 mysqli real escape string 的内容 并决定尝试一下
  • laravel 5.4 MIME 自定义错误消息不起作用?

    Dearest 我想为上传的图像制作自定义错误消息 这是我的控制器代码 protected function validator data validateContent messages imgUserAvatar mimes gt Fi
  • Riverpod:摄取 REST API 的简单方法

    我目前正在构建一个应用程序 该应用程序摄取 WordPress REST API 来显示博客文章 在初始应用程序加载时 我希望它使用一种方法提取初始数据 然后通过用户交互提取更多帖子 我目前正在进行这项工作 但是 我的实现似乎很复杂 并且可
  • 如何计算 PySpark 中行之间的差异?

    这是我在 PySpark 中的数据框 utc timestamp data feed 2015 10 13 11 00 00 00 00 1 A 2015 10 13 12 00 00 00 00 5 A 2015 10 13 13 00
  • OpenShift 中水平 pod 自动缩放器的自定义指标

    我正在使用 openshift v3 它使用 kubernetes 版本 1 2 我正在探索更多有关自动缩放功能的信息 目前它表示仅支持 CPU 指标 有没有一种方法可以根据内存或从 heapster 收集的其他指标数据来扩展 opensh
  • 如何等待ajax请求?

    我正在尝试编写一个 JS 代码 如果给定的数字已存在于数据库中 该代码将取消 btn submit 按钮 onclick 事件 我使用 AJAX 查询数据库中的给定数字 并确定是否应将数据发送到将上传问题的 php 站点 为了确定这一点 我