返回、确认和取消按钮无法正常工作

6

我在twig中有这个链接:

<a href="{{ path('relation-delete', {'id': c.getCustomerId}) }}" 
   onclick="return confirm('{% trans %}relation.delete{% endtrans %}');"
   class="tip" data-original-title="Verwijder klant {{ c.getCustomerName }}">

源代码中的HTML标签:
<a href="/app_dev.php/projects/delete/1" class="tip" 
  data-original-title="Verwijder project Lantaarn plaatsen" 
  onclick="return confirm('Verwijderen');">

<button class="btn btn-danger"><i class="fa fa-times fa-fw"></i></button></a>`

点击确认取消按钮不会取消操作,而只是继续执行。有人知道这个返回确认的问题出在哪里吗?


你必须展示结果HTML,而不是模板。 - hindmost
Add this into the question - hindmost
完成了,对此有什么想法吗? - Tommie
控制台中有任何 JavaScript 错误吗? - reafle
为什么你把 button 放在 a 元素里面? - hindmost
控制台没有错误。 - Tommie
2个回答

7
您可以在函数中验证确认框,而不是在HTML元素之外,并在'onclick'事件上调用此函数。就像这样:
<a href="somePage" onclick="return myFunction()">My link</a>

function myFunction() {
    if (confirm("Confirm message")) {
       // do stuff
    } else {
      return false;
    }
}

原来这是在另一个 JavaScript 文件中引起问题的原因:$("a").click(function(e) { e.preventDefault(); location.href = $(this).attr("href"); }); - Tommie

6

添加 event.preventDefault(); 就可以解决这个问题。

以下是一个示例:

console.log('Validating...');

function confirm_delete(){
var txt;
var r = confirm("Are you sure you want to delete?");
if (r == true) {
    txt = "You pressed OK!";
} else {
    txt = "You pressed Cancel!";
    event.preventDefault();
}
console.log(txt);
}

或者那个“return false;”语句也可以解决问题,我想当我第一次阅读它时可能错过了它... - Dhruv

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接