Javascript - 根据ajax响应停止表单提交[重复]

2023-12-02

我想使用 AJAX 来确定表单的值是否可以接受(这不是表单验证)。阿贾克斯result将确定是否提交表格。

下面,您将看到我在提交表单时执行 AJAX 调用,并且根据返回的内容(可接受的空白或不可接受的错误消息),我想return true; or return false; the $("form").submit.

我怀疑我的麻烦出在 AJAX 上success:。请帮我获取result脱离 AJAX 调用,这样我就可以做类似的事情if (result == "") { return true; } else { return false; }.

WORKING:

$("form").submit(function(e) {
    e.preventDefault();
    var form = this;
    var tray = $('select[name=tray_id]').val();
    $.ajax({
        type: "POST",
        url: "modules/reserve-check.php",
        data: {tray_id: tray},
        cache: false
    }).done(function(result) {
        if (result == "")
            form.submit();
        else
            alert(result);
    }).fail(function() {
        alert('ERROR');
    });
});

原来的:

$("form").submit(function() {
    var tray = $('select[name=tray_id]').val();
    $.ajax({
        type: "POST",
        url: "modules/reserve-check.php",
        data: {tray_id: tray},
        cache: false,
        success: function(result) {
                alert(result);
        },
        error: function(result) {
            alert(result); //This works as expected (blank if acceptable and error msg if not acceptable)
        }
    });

    /*
    if (result == "")
        return true; 
    else
        return false; 
    */
    return false; //this is here for debugging, just to stop the form submission
});

由于 ajax 调用是异步的,因此您必须阻止表单提交,然后当返回结果时,检查它是否匹配条件并使用本机提交处理程序提交表单,从而避免preventDefault()在 jQuery 事件处理程序中:

$("form").submit(function(e) {
    e.preventDefault();

    var self = this,
        tray = $('select[name=tray_id]').val();

    $.ajax({
        type: "POST",
        url: "modules/reserve-check.php",
        data: {tray_id: tray},
        cache: false
    }).done(function(result) {
        if (result == "") self.submit();
    }).fail(function() {
        alert('error');
    });
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javascript - 根据ajax响应停止表单提交[重复] 的相关文章

随机推荐

  • 存储连接实例 -twisted.web

    如何在twisted web 中存储连接实例 我见过 request getSession 但我搜索了一下 很少有关于如何存储和检索它的示例 Thanks Update 我想将 LDAP 连接存储在会话中以便稍后检索 def render
  • PHP SoapClient 删除带有名称的元素

    我有一个 WSDL 其中有一个需要属性的元素
  • 对 Android 应用程序添加到的项目以外的项目进行 Firebase 身份验证

    我有一个非常具体的设置 其中我们有一个项目正在处理我们的身份验证 但另一个项目实际上将实际的 Android iOS 应用程序添加到项目中 当我们的自定义后端使用 auth 时 这很好 但是当我们尝试使用我们自己的提供程序时 我们会收到错误
  • XAMPP 缺少 php_eaccelerator_ts.dll

    在 php ini 中有这一行zend extension C xampp php ext php eaccelerator ts dll 并遵循本指南Win7 上的 XAMPP 太慢它说取消注释该行会使 XAMPP 更快 但如果该文件甚至
  • Google API 拒绝请求:具有引用限制的 API 密钥不能与此 API 一起使用

    我通过 Outsystems 平台进行 Google Map API REST 调用 但是 如果我在 Google 控制台中指定引荐来源网址 我的访问会被拒绝 但它是没有引荐来源网址的工作文件 为什么在使用 API 时在我的 Google
  • 从右到左工具提示文本c#

    使用 WinForms 我有一个想要设置到工具提示中的字符串 该字符串由以下行分隔Environment NewLine 像这样 x ToolTipText aaaaaa Environment NewLine bbb 当这个字符串设置为工
  • catch异常处理

    使用有什么区别 catch Exception ex throw ex 并使用 catch might include Exception throw throw ex从该点重新抛出异常对象 这通常是不好的 因为它破坏了导致原始问题的有用的
  • 通过将列表转换为集合然后再转换回列表来对列表进行排序的时间复杂度

    我最近看了Raymond Hettingers 谈论 Python 字典 并通过扩展集 他提到整数会散列到自身 并且将整数添加到字典 或集 将按顺序插入它们 只要您不删除项目 顺序就会是保存在 python 3 6 中 可能还有更高版本 在
  • 在ggplot2中格式化离散比例的位置

    我正在尝试在 GGPlot2 中创建格式良好的 2 状态凹凸图 在下图中 我想减小 y 轴和第一个因子值 旧 之间的 空白 的大小 并增加第二个值 新 右侧的空间大小 在真实数据中 我的文本是完整的句子 因此当前仅显示第一部分 My cod
  • MapOverlay 就像 PopUp 一样

    friends I want draw MapOverlay like as PopUp Menu same as in this image How I can do this 您可以使用或参考我为此目的创建的 MapViewBalloo
  • 将事件处理程序附加到谷歌地图信息气泡内的元素

    我有一个关于谷歌地图和事件处理 监听的问题 使用 jQuery 和谷歌地图 v3 我能够放置一个地图标记和一个事件侦听器 当用户单击该标记时 该事件侦听器会打开一个信息气泡 我想做的 但到目前为止还无法弄清楚 是将另一个事件处理程序添加到信
  • 如何加速 numpy 中的乘法和求和运算[重复]

    这个问题在这里已经有答案了 我需要解决有限元法问题并且必须计算以下内容C from A and B与一个大M M gt 1M 例如 import numpy as np M 4000000 A np random rand 4 M 3 B
  • 移动平均线或移动平均线

    Python 是否有 SciPy 函数或 NumPy 函数或模块可以计算给定特定窗口的一维数组的运行平均值 NOTE More efficient solutions may include scipy ndimage uniform fi
  • Postgres动态查询功能

    我需要创建一个函数来运行查询并返回结果 其中表名和列名作为函数的参数 我目前有这个 CREATE OR REPLACE FUNCTION qa scf tname character varying cname character vary
  • SQLAlchemy 无法连接两个表之间有两个外键

    由于这一行 下面的代码不起作用owner id Column Integer ForeignKey employees employee id 在经理班 SQLAlchemy 生成错误消息 AmbigeousForeignKeysError
  • 访问 CORS 请求的响应标头

    我正在使用 fetch API 发出类似于以下代码片段的跨域请求 window fetch http data test wikibus org magazines method get then function response var
  • 使用数组时出现 NullPointerException

    我正在尝试为在线 Java 课程创建一个程序 该程序包括一个 Employee 类和一个 Name 类 我必须创建多个 Employee 对象并提示用户输入员工的姓名 我将所有 Employee 对象存储在员工数组中 这是代码 Create
  • 在Android中实现计数器

    我有一个应用程序 我需要显示从 3 到 1 的计数器 然后快速切换到另一个活动 TimerTask 适合这样做吗 有人能给我举一个具体如何做的例子吗 倒数计时器工作了 显示 3 秒计时器的代码是 new CountDownTimer 400
  • 如何用定时器改变图像

    大家好 我必须将图像说为 image1 和 image2 我想在计时器上显示两个图像 一次只能看到一个图像 两个图像重叠 即图像 1 位于图像 2 之上 因此 如果我使用计时器 我希望能够一次显示一张图像 我该怎么做呢 我希望我清楚我的问题
  • Javascript - 根据ajax响应停止表单提交[重复]

    这个问题在这里已经有答案了 我想使用 AJAX 来确定表单的值是否可以接受 这不是表单验证 阿贾克斯result将确定是否提交表格 下面 您将看到我在提交表单时执行 AJAX 调用 并且根据返回的内容 可接受的空白或不可接受的错误消息 我想