当前位置:  开发笔记 > 编程语言 > 正文

简单的JavaScript问题:onClick确认不会阻止默认操作

如何解决《简单的JavaScript问题:onClick确认不会阻止默认操作》经验,为你挑选了5个好方法。

我正在使用带有确认对话框的onClick事件创建一个简单的删除链接.我想确认用户想要删除条目.但是,似乎在对话框中单击"取消"时,默认操作(即href链接)仍在进行,因此该条目仍会被删除.不确定我在这里做错了什么......任何输入都会非常感激.

编辑:实际上,代码现在的方式,页面甚至没有进行函数调用...所以,根本没有对话框出现.我确实有onClick代码:

onClick="confirm('Delete entry?')"

这确实带来了一个对话框,但仍然是取消取消的链接.

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt_rt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>




...


 
    
        " />
        Edit this skill.
    
    
        " onClick="return delete()"/>
        Remove this skill.
    
 



1> Luca Tettama..:

你的代码中有一个拼写错误(标签a太早关闭).你可以使用:


请注意返回(确认):脚本在内部平均值中返回的值决定是否运行默认浏览器操作; 如果你需要运行一大段代码,你当然可以调用另一个函数:


...

(请注意,删除是一个关键字)

为了完整性:现代浏览器还支持DOM事件,允许您为每个对象上的同一事件注册多个处理程序,访问事件的详细信息,停止传播等等; 看DOM活动.



2> 小智..:

好吧,我曾经遇到过同样的问题,在确认之前添加" return " 这个词就解决了问题:

onclick="return confirm('Delete entry?')"

我希望这可能对你有益.

祝好运!



3> Stepan Mazur..:

我用它,就像一个魅力.无需任何功能,只需与您的链接内联

onclick="javascript:return confirm('Are you sure you want to delete this comment?')"



4> Gytis..:

我有类似的问题(点击按钮,但取消后点击它仍然删除我的对象),所以这样做,希望它有助于未来的人:

 $('.deleteObject').click(function () {
    var url = this.href;
    var confirmText = "Are you sure you want to delete this object?";
    if(confirm(confirmText)) {
        $.ajax({
            type:"POST",
            url:url,
            success:function () {
            // Here goes something...
            },
        });
    }
    return false;
});



5> siukurnin..:

使用简单的链接进行操作(例如删除记录)对我来说很危险:如果爬虫试图索引您的页面会怎么样?它将忽略任何JavaScript并关注每个链接,可能不是一件好事.

你最好使用method ="POST"的表单.

然后你将有一个"OnSubmit"活动来完成你想要的......


这是一个很好的观点.它不仅对您的应用程序有潜在危险,而且实际上违反了HTTP规范.
推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有