簡體   English   中英

javascript重定向確實可以正常工作

[英]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();

您將ifreturn語句一起使用是多余的。 只需返回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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM