javascript - SweetAlert2 检测单选按钮选择

标签 javascript jquery sweetalert sweetalert2

我正在使用 SweetAlert2 javascript 库来显示弹出窗口。 SweetAlert2 是 SweetAlert 的一个分支,不再维护。 SweetAlert2 允许我添加这样的单选按钮

// inputOptions can be an object or Promise
var inputOptions = new Promise(function(resolve) {
    resolve({
      '#ff0000': 'Red',
      '#00ff00': 'Green',
      '#0000ff': 'Blue'
    });
});

swal({
  title: 'Select color',
  input: 'radio',
  inputOptions: inputOptions,
  inputValidator: function(result) {
    return new Promise(function(resolve, reject) {
      if (result) {
        resolve();
      } else {
        reject('You need to select something!');
      }
    });
  }
}).then(function(result) {
  swal({
    type: 'success',
    html: 'You selected: ' + result
  });
})

SweetAlert2 为 radio 输入指定“swal2-radio”名称,如下所示

<input id="swal2-radio-1" type="radio" name="swal2-radio" value="3">

所以我尝试监听 swal2-radio 的任何点击,如下所示:

$("input[name='swal2-radio']").on("click", function() {
var id = $('input[name=swal2-radio]:checked').val();
console.log('id: ' + id);
});

它应该打印到控制台,以便我知道它有效。

这是我到目前为止的代码: https://jsfiddle.net/ayx0fkz3/

我做错了什么,还是因为 SweetAlert2 的工作方式而不起作用?

最佳答案

您必须通过委托(delegate)事件与整个文档绑定(bind)来绑定(bind)事件。

$(document).on("click",".swal2-container input[name='swal2-radio']", function() {
    var id = $('input[name=swal2-radio]:checked').val();
    console.log('id: ' + id);
});

检查Fiddle Link

关于javascript - SweetAlert2 检测单选按钮选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39641241/

相关文章:

jquery - 甜蜜的警报输入不专注于 jquery ui 模式

callback - SSJS 在 CSJS 回调函数之前执行

jquery - focus 确认不在 swal 中工作

javascript - 两个 JS 库之间的代码冲突

javascript - 如何根据 Jasmine 单元测试中的其他对象测试功能

javascript - 返回上一页

javascript - 递归调用返回 promise 的异步函数

javascript - 有没有办法在没有 jQuery 的情况下做同样的事情,只使用 CSS3 和 HTML5

javascript - 在javascript中执行动态创建的代码

jquery - 使用 Velocity.js 或 Transit.js 来实现 CSS/JS/jQuery 动画?