使用 jquery UI 确认表单提交

2024-04-19

我正在尝试确认使用 ruby​​ on Rails 创建的提交表单,但在提交之前,我有一个条件,即打开一个确认弹出窗口,询问用户是否真的想要这样做。这与默认的确认浏览器框一起使用。但现在我尝试使用 Jquery UI 来做到这一点,但它不起作用。如何使用 jquery ui 返回 true 或 false?

如果用户单击“是”,则应提交表单,如果“否”,则应关闭

这是我的 jquery ui 函数:

  function confirm(message, callback) {
    $('body').append('<div id="confirm" style="display:none">'+message+'</div>');
    $( "#confirm" ).dialog({
      resizable: false,
      title: 'Confirm',
      zIndex: 99999999,
      modal: true,
      buttons: [
        {
          text: "Yes",
          click: function() {
            $(this).dialog("close");
            if ($.isFunction(callback)) {
              callback.apply();
            }

          }
        },{
          text: "No",
          click: function() { $(this).dialog("close");}
        }
      ],
      close: function(event, ui) {
        $('#confirm').remove();
      }
    });
  }

我的提交功能:

     $('form').submit(function(){

          <% @meetings.each do |mt| %>

       ...

          <%# cvalue_starthour.value %>

          $meeting_dates = [];

     ...

          $.each($meeting_dates, function (index, value) {
            $.each($test, function (index2, value2) {
);

              if (value.priority == "<%= l(:default_priority_trivial) %>" || "<%= l(:default_priority_minor) %>" || "<%= l(:default_priority_major) %>") {

                if ((value.date == value2.date) && (value.time == value2.time)) {
                  message = confirm("Are you sure?");


                }
              }
            });
          });


          <%      end %>


          <%  end %>

          if (message) {
            return true;
          } else {
            return false;
          }
        });


      });

问题在于浏览器处理自己的警报、确认和提示与自行生成的对话框的方式。您需要添加 try/catch 类型的场景。

我创建了以下内容来解决这个问题:https://jsfiddle.net/Twisty/7kp46r22/3/ https://jsfiddle.net/Twisty/7kp46r22/3/

这使用$.deferred() and $.when()在返回结果或执行任何回调之前等待用户做出选择。

对于您的应用程序,这可能如下所示:

工作示例:https://jsfiddle.net/Twisty/wtogu9cu/ https://jsfiddle.net/Twisty/wtogu9cu/

HTML

<form id="myForm">
  Submit Form:
  <button type="submit">Go</button>
</form>

jQuery

function ui_confirm(message, callback) {
  var dfd = $.Deferred();
  var dialog = $("<div>", {
      id: "confirm"
    })
    .html(message)
    .appendTo($("body"))
    .data("selection", false)
    .dialog({
      autoOpen: false,
      resizable: false,
      title: 'Confirm',
      zIndex: 99999999,
      modal: true,
      buttons: [{
        text: "Yes",
        click: function() {
          $(this).dialog("close");
          dfd.resolve(true);
          if ($.isFunction(callback)) {
            callback.apply();
          }
        }
      }, {
        text: "No",
        click: function() {
          $(this).dialog("close");
          dfd.resolve(false);
        }
      }],
      close: function(event, ui) {
        $('#confirm').remove();
      }
    });
  dialog.dialog("open");
  return dfd.promise();
}
$(function() {
  $('#myForm').submit(function(e) {
    e.preventDefault();

    // your code

    $.when(ui_confirm("Are you sure?")).done(function(val) {
      if (val) {
        console.log("Submit the form.");
        $('#myForm')[0].submit();
      } else {
        console.log("Do not submit the form.");
      }
    });
  });
});

查看更多:

  • https://api.jquery.com/category/deferred-object/ https://api.jquery.com/category/deferred-object/
  • https://api.jquery.com/jQuery.Deferred/ https://api.jquery.com/jQuery.Deferred/
  • https://api.jquery.com/jQuery.when/ https://api.jquery.com/jQuery.when/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 jquery UI 确认表单提交 的相关文章

  • 无法实例化模块 [$injector:unpr] 未知提供程序:$routeProvider

    我从 AngularJS 升级时收到此错误1 0 7 to 1 2 0rc1 ngRoute 模块不再是核心的一部分angular js文件 如果您继续使用 routeProvider 那么您现在需要包括angular route js在你
  • 使用 JavaScript 生成 PDF 文件

    我正在尝试将 XML 数据从网页转换为 PDF 文件 并且希望能够完全在 JavaScript 中完成此操作 我需要能够绘制文本 图像和简单的形状 我希望能够完全在浏览器中完成此操作 我刚刚写了一个名为jsPDF https github
  • 判断一个数字是否能被 3 或 5 整除 (FizzBu​​zz)

    如何根据输出是否能被 3 或 5 整除来更改输出 如果它能被 3 整除 我想显示 rock 如果它能被 5 整除 我想显示 star 类似于 FizzBu zz 如果两者都有 他们都会看到 这是我的代码 if var n Math floo
  • jQM / jquery-collagePlus 使用问题

    我正在使用 jQM 构建应用程序 并且尝试使用 jquery collagePlus http ed lea github io jquery collagePlus http ed lea github io jquery collage
  • console.log() 显示同一对象属性的矛盾值

    我想我可能要疯了 我使用 console log 来查看对象的状态 然后在下一行对同一对象的特定属性执行 console log 并为每个属性获取不同的值 我正在使用的代码是 console log this pictures Items
  • ToggleClass 动画 jQuery?

    我的网站上有一个部分 当用户单击时我希望它展开 我正在使用 jQuerytoggleClass为了这 expandable function e e preventDefault this closest article toggleCla
  • 来自控制器的 Rails 验证

    有一个联系页面 可以输入姓名 电话 电子邮件和消息 然后发送到管理员的电子邮件 没有理由将消息存储在数据库中 问题 如何 在控制器中使用 Rails 验证 根本不使用模型 或者 在模型中使用验证 但没有任何数据库关系 UPD Model c
  • 在管道中重用变量的功能方式

    在 javascript 和 typescript 中与 Ramda 一起使用函数式编程 我经常发现自己编写如下代码 const myFun c gt const myId c id const value pipe getAnotherO
  • Ruby/Rails 集合到集合

    我有两个表与一个连接表连接 这只是伪代码 Library Book LibraryBooks 我需要做的是 如果我有一个图书馆的 id 我想获取该图书馆拥有的所有书籍所在的所有图书馆 因此 如果我有图书馆 1 图书馆 1 中有书籍 A 和
  • Django - 提交具有同一字段多个输入的表单

    预警 我对 Django 以及一般的 Web 开发 非常陌生 我使用 Django 托管一个基于 Web 的 UI 该 UI 将从简短的调查中获取用户输入 通过我用 Python 开发的一些分析来提供输入 然后在 UI 中呈现这些分析的可视
  • 使用日期字符串数组在引导日期选择器中设置禁用月份不起作用

    我有一个日期选择器 其配置如下 HTML div class input group date div
  • 计算文本选择的 xy 位置

    我正在尝试使用 DOM 元素创建自己的文本选择 是的 我的意思是当您在此元素中选择文本时 您会在文本后面看到蓝色背景 这个想法是停止默认行为 蓝色 并使用我自己的元素来完成工作 方法是找到选择的 xy 位置 然后放置绝对定位的元素 我希望能
  • 如何处理requireJs超时错误?

    我正在使用 require js 作为加载框架编写一个移动混合应用程序 我遇到加载错误的问题 我想做的是在设备离线且无法下载在屏幕上显示地图所需的 google 地图 API 脚本时设置后备解决方案 我得到的只是 Uncaught Erro
  • 如何为 ApplicationController 中 after_action 过滤器中的所有操作渲染 json?

    是否可以在 Rails ApplicationController 中创建一个 after filter 方法 该方法在每个操作上运行并呈现为 JSON 我正在构建一个 API 并且希望将控制器中的每个操作的输出呈现为 JSON 客户控制器
  • 如何限制下拉列表更改而不禁用它

    如何在不禁用下拉列表的情况下限制下拉列表选项更改 意味着我无法更改选项 并且下拉列表不应该是只读的 我的问题是我的服务器没有读取禁用的元素 这是我的出价 http jsfiddle net m3v7y jQuery var lastSel
  • Node.js 未处理的“错误”事件

    我编写了一个简单的代码并将其保存在文件 try js 中 var http require http var makeRequest function message var options host localhost port 8080
  • Node.js - 重载函数

    有没有一种方法可以重载node js中的函数 类似于 noSuchMethod https developer mozilla org en JavaScript Reference Global Objects Object noSuch
  • 在 HTML5 iOS 7 / iOS 8 中显示十进制键盘

    经过几个小时的搜索后 我只是有一个简单的问题 是否有可能在网络浏览器输入字段中显示小数键盘 input type number 只显示数字 但我需要在左下角使用逗号或点 我尝试过任何事情 pattern step等等 但没有显示十进制键盘
  • 使用 JQuery 根据下拉列表选择的值显示/隐藏控件

    我正在尝试使用 JQuery 根据下拉菜单的选定索引显示 隐藏 div 标签 但它不起作用 任何帮助将不胜感激 Thanks
  • Internet Explorer 9 是否会因数组和对象文字末尾的额外逗号而卡住?

    现代浏览器和 Node js 等环境允许您说 a 1 b 2 或 1 2 3 这在历史上一直是 Internet Explorer 的问题 Internet Explorer 9 中修复了此问题吗 对此有两种不同的答案 一种是对象初始值设定

随机推荐

  • 以编程方式查找 Android 系统信息

    我正在尝试以编程方式查找 Android 设备的系统信息 具体来说 RAM 中央处理器速度 核心 架构等 是否有任何 Android 类指定此信息 我一直在使用 android board 库 但它似乎没有我想要的一切 让我告诉你我做了什么
  • gevent 无法在 OS X Capitan 上的 python 虚拟环境中安装

    我刚刚安装了 OS X Capitan 并尝试在 python2 7 x 虚拟环境中安装 gevent 这就是我得到的 看起来像是与 gcc 有关的东西 这是回溯 Building wheels for collected packages
  • 从部署配置中配置 Pod 的重启策略

    我们正在使用 Openshift Kubernetes 的托管版本 我正在努力将部署配置创建的所有 pod 的 pod 重启策略从 始终 设置为 从不 但我不确定 yaml 中的位置来做出这个改变 我们的部署配置如下所示 kind Depl
  • 如何在 Ruby 中一次读取一个文件?

    我想迭代读取文件中固定数量的字节 然后返回它们 我的代码如下 我从互联网上的一个例子中获取了它 File open textfile txt do file while buffer file read size do yield buff
  • 在目标检测中使用步长为 1 的最大池化层的目的是什么

    我正在使用单次探测器 SSD 更具体地说这个实现 https github com pierluigiferrari ssd keras在喀拉斯 当我检查 SSD300 时 正如我注意到的 这也适用于 SSD512 我注意到在每个卷积组之后
  • 在哪里可以读取 Visual Studio 2017 for Mac 中的控制台输出?

    安装了新的 Visual Studio Community for Mac 只是尝试运行一些现有的命令行应用程序 Console WriteLine 在 VisualStudio for Mac 上的哪里输出 可以在终端上重定向吗 谢谢 查
  • 系统调用超时?

    我正在使用 unix system 调用 Gunzip 和 gzip 文件 对于非常大的文件 有时 即在集群计算节点上 这些文件会被中止 而其他时候 即在登录节点上 它们会通过 系统调用可能花费的时间是否有一些软限制 还能是什么 调用线程应
  • 按第一行数字排序

    我有一个包含近 900 行的 Excel 文件 我已将其保存为制表符分隔的 txt 文件 我想按第一列中给出的数字 范围在 0 到 2250 之间 对文本文件进行排序 其他列都是数字和不同长度的字母 例如 我的文件 txt 0251 abc
  • paypal沙箱账户失败

    我正在尝试创建一个贝宝沙箱测试帐户 我填写了所有字段 提供了一个复杂的密码和 100 美元作为余额 在创建并检查帐户的配置文件后 我仍然收到错误消息 我们在创建此沙盒帐户时遇到了一些问题 请删除它并重试 PayPal 余额为 0 我已经尝试
  • 使用 Swift Mailer、GMail 和 PHP 发送电子邮件,权限被拒绝错误

    我下载了 SwiftMailer 4 1 6 以使用 Gmail 发送电子邮件 我为此目的编写了以下代码
  • 如何从 Knockoutjs toJS() 中排除某些属性

    我有以下模型 var model A One B Two C Three 我将各种 UI 元素绑定到这些字段 效果很好 不过 我将模型转换回 JavaScript 对象 以便可以将任何更改保存到服务器 var goingToServer k
  • 用于 ListView 中多个视图的自定义 Android 适配器的 ArrayIndexOutOfBoundsException

    我正在尝试为 ListView 创建自定义适配器 因为列表中的每个项目都可以有不同的视图 链接 切换或单选组 但是当我尝试运行使用 ListView 的活动时 我收到错误并且应用程序停止 该应用程序针对Android 1 6平台 代码 pu
  • Python ImportError“无法导入名称'multiarray'

    我试图简单地将 numpy 导入到 python 脚本中 使用 PyCharm 称为 MatPlotLib py 但收到了这个奇怪的错误 它工作得很好 但后来我开始摆弄 Jupyter 我尝试卸载并重新安装 Python 然后系统恢复 但似
  • 如何更改Android Material组件中的工具栏后退按钮图标

    我想将默认的向上导航图标 后退按钮图标 更改为我的自定义图标 我没有使用抽屉 只是一个简单的工具栏和材质组件 这可能吗 如果您使用的是Toolbar to 更改图标只需使用 Toolbar toolbar findViewById R id
  • 检查 SQL Server 中的变量是否包含任何非数字

    我有一个如下查询 DECLARE rptID VARCHAR 8 SET rptID SELECT reportID FROM Reports 一般来说 rptID包含数字 如 00001234 等 但是有什么方法可以验证变量是否 rptI
  • 使用 Cdata 内的 XSLT 1.0 删除 xml 声明 ()

    我从 SharePoint 应用程序收到这样的响应 Input
  • 在不知道其类型的情况下获取字典键值对

    我有一个对象instance为此 instance GetType GetGenericTypeDefinition typeof Dictionary lt gt 是真的 我的问题是 如何在实际不知道其泛型类型的情况下从该对象中提取键值对
  • javascript 中用于日期验证的正则表达式

    请有人提供日期验证正则表达式 这将允许以下规则是 它应该允许月 日 年 月 日 年 月 日 年 月 日 年 不允许yy 月份 30 和 31 验证的天数 闰年和非闰年的二月验证 不要尝试解析日期entirely使用正则表达式 跟随KISS原
  • 添加 firebase crashlytics 后,React 本机应用程序卡在启动屏幕上?

    我正在开发 React Native 应用程序 该应用程序运行良好 但是 当我导入 firebase crashlytics 时 如果我再次删除它 它会卡在启动屏幕上 应用程序工作正常吗 由于我是新手 我无法找到此问题的根本原因 我正在尝试
  • 使用 jquery UI 确认表单提交

    我正在尝试确认使用 ruby on Rails 创建的提交表单 但在提交之前 我有一个条件 即打开一个确认弹出窗口 询问用户是否真的想要这样做 这与默认的确认浏览器框一起使用 但现在我尝试使用 Jquery UI 来做到这一点 但它不起作用