我有一个链接,当用户点击它时会显示一个确认框。如果用户单击“是”,则会将其引导至指定页面,否则将保留在同一页面上。这是我的链接和我的功能代码:
<script type='text/javascript'>
function checkDelete(){
var i = confirm("Are you sure you want to delete?");
if(i){
return true;
}else{
return false;
}
}
</script>
<a href="operation.php?action=delete&id=<?php echo $id?>" onclick='checkDelete'>Delete</a>
问题是,即使我点击“否”或取消按钮,它也不会停留在同一页面上。它总是重定向到页面operation.php。但是如果我在onclick上编写内联javascript代码,那么它工作正常。
答案 0 :(得分:1)
你遇到了一些问题:
JavaScript代码checkDelete
只引用变量checkDelete
;它什么都没做。您可能打算调用它,并进一步返回调用它的结果:
// in onclick
return checkDelete();
将if
与return
语句一起使用是多余的。只需返回confirm
的结果:
function checkDelete() {
return confirm('...');
}
此时,您甚至可以内联它:
// in onclick
return confirm('...');
通常不赞成使用内联JavaScript。最好从JavaScript绑定事件处理程序。例如,如果您的链接ID为delete_link
,则可以使用:
// should only be run when delete_link exists
// (e.g. in a DOM ready handler or a script after delete_link)
// this code does not accommodate for older versions of Internet Explorer
document.getElementById('delete_link').addEventListener('click', function(e) {
if(!confirm('...')) {
e.preventDefault();
}
}, false);
答案 1 :(得分:1)
试试onclick="return checkDelete();"
。当您尝试使用JavaScript时,使用适当的JavaScript表达式会有所帮助;)
同时,尝试将checkDelete
更改为:
function checkDelete() {return confirm("Are you sure you want to delete?");}
答案 2 :(得分:1)
尝试:
<a href="operation.php?action=delete&id=<?php echo $id?>" onclick='return checkDelete();'>Delete</a>
<script type='text/javascript'>
function checkDelete(){
var i = confirm("Are you sure you want to delete?");
if(i){
return true;
}else{
return false;
}
}
</script>
答案 3 :(得分:1)
<a href=''>
标记始终重定向到目标。返回false
和取消操作的概念仅适用于您提交表单时。