1

我正在尝试在单击编辑按钮时设置 sweetalert 弹出消息。

这是示例代码:

<td><a href="/control/edituser/{{Values.id}}" onclick='a' class="btn btn-info">Edit</a></td>

脚本:

<script>
$('a').click(function(e){
e.preventDefault();
var link = $(this).attr('href');

swal({
    title: "Are you sure?",
    text: "By clicking 'OK' you will be redirected to the link.",
    type: "warning",
    showCancelButton: true
},
function(){
    window.location.href = link;
});
});
</script>
4

2 回答 2

2

关于你的代码伙伴有一些问题。onclick='a'首先,当你没有定义一个函数而是依靠 jQuery 来检测点击事件时,你为什么要使用它?要么使用 jQuery,要么使用onClick.

第二件事是您需要检查确认以触发您想要的操作。

<td><a href="/control/edituser/{{Values.id}}" class="btn btn-info">Edit</a></td>

<script>
  $('a').click(function(e) {
    e.preventDefault();
    var link = $(this).attr('href');

    swal({
        title: 'Are you sure?',
        text: "By clicking 'OK' you will be redirected to the link.",
        type: 'warning',
        showCancelButton: true
      },function(isConfirm){
        if (isConfirm){
          window.location.href = link;
        } else {
          // Handle rejection
        }
      });
    });
  </script>

进一步阅读:

如何使用甜蜜警报确认?

使用 HTML 按钮调用 JavaScript 函数

于 2018-03-23T12:30:25.437 回答
1

您在代码中使用了不推荐使用的选项(类型、showCancelButton 等)。

如果您只有一个,我建议您为编辑按钮/id 上课。

通过 jQuery 在其上绑定 click 事件并使用 then() 方法进行 swal。

例子:

<a href="/" class="editButton">edit</a>

和 javascript:

var $editButton = $('.editButton');

$editButton.on('click', function(e) {

  e.preventDefault();

  swal({
      title: 'Are you sure?',
      text: 'By clicking \'OK\' you will be redirected to the link.',
      icon: 'warning',
      buttons: {
          cancel: true,
          confirm: true
      }
  }).then(function(value) {
      if (value) {
          //  Either true or null
          window.location.href = "https://www.stackoverflow.com";
      }
  });

});

内联示例

如果您想内联,则将 onclick 属性添加到您的元素并通过它发送 url:

<a href="/" class="editButton" onclick="foo(event, 'https://www.stackoverflow.com');">edit</a>

和 javascript:

function foo(event, url) {

    event = event || window.event;
    event.preventDefault();

    swal({
        title: 'Are you sure?',
        text: 'By clicking \'OK\' you will be redirected to the link.',
        icon: 'warning',
        buttons: {
            cancel: true,
            confirm: true
        }
    }).then(function(value) {
        if (value) {
            //  Either true or null
            window.location.href = url;
        }
    });
}
于 2018-03-23T12:44:35.567 回答