[英]javascript redirect does work properly
我有一個鏈接,當用戶單擊它時會顯示一個確認框。 如果用戶單擊“是”,則會將其引導到指定頁面,否則它將停留在同一頁面上。 這是我的鏈接和我的功能代碼:
<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代碼,那么效果很好。
您遇到了一些問題:
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);
嘗試onclick="return checkDelete();"
。 當您嘗試使用JavaScript時,使用適當的JavaScript表達式會有所幫助;)
同時,嘗試將checkDelete
更改為此:
function checkDelete() {return confirm("Are you sure you want to delete?");}
嘗試:
<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>
<a href=''>
標記始終重定向到目標。 返回false
和取消操作的概念僅在提交表單時適用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.