【问题标题】:Javascript Confirm box working wrongJavascript确认框工作错误
【发布时间】:2013-10-15 06:33:21
【问题描述】:

大家好,我正在使用 Angular js,我想在单击删除按钮时添加确认消息

我试过这段代码:

<a data-ng-click="removeTodo(this)" href="javascript:;"
onclick="javascript:return confirm('Are you sure you want to delete ?')">Delete</a>

这显示 ok 并使用确认框取消 button,如果我单击 ok 按钮,它将进入下一个过程,但如果我点击 cancel 按钮然后它与去相同的过程确认框没有隐藏(ok 按钮将返回 true ,但与取消按钮相同将返回 true 不假的)

但是当我在点击我的删除按钮时使用下面的代码时效果很好

 $scope.removeTodo = function (Student) {
        if (!confirm("Do you want to delete this ? ")) {
            return false;
        }

   //please think , I added Some code for next process in here 
};

有什么问题?我错过了什么?为什么我的第一个代码不起作用?

【问题讨论】:

  • removeTodo中的参数是干什么用的?
  • 别担心 removeTodo 代码在工作,但是我的锚标记代码没有工作,并且 removeTodo 已经返回 gridview 行

标签: javascript jquery angularjs anchor confirm


【解决方案1】:

这是因为return false 与阻止默认操作和停止事件传播相同 - 这将阻止附加到祖先元素的处理程序被执行......但在你的情况下,两个点击处理程序都附加到同一个元素。

因此,即使确认返回 false,角度点击处理程序也会被执行。

【讨论】:

  • @RameshRajendran 为什么不在removeTodo 处理程序本身中添加确认代码
  • 所以我的第二个代码只是为了正确的方式?我的第一个代码在 angularjs 上不起作用?
  • 好的,我明白了。但我在等待另一个答案。谢谢+1
  • 但我有一个疑问。是否可以在一个按钮中添加并在单击事件上调用两个 js 方法?
  • 你的例子很好。但我的问题就像只是改变。请参阅此示例:jsfiddle.net/Y5aaj/4。是否可以 ? (但它不起作用)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多