2012-06-05 24 views
0

我有一個鏈接,當用戶點擊它時會顯示一個確認框。如果用戶點擊是,那麼它將引導他們到指定的頁面,否則它保持在同一頁面上。這裏是我的鏈接,我的功能代碼:javascript重定向確實工作

<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代碼,那麼它的工作正常。

回答

1

嘗試onclick="return checkDelete();"。使用適當的JavaScript表達式當您嘗試使用JavaScript樣的幫助;)

同時,嘗試改變checkDelete這樣:

function checkDelete() {return confirm("Are you sure you want to delete?");} 
1

你有幾個問題:

的JavaScript代碼checkDelete只是引用變量checkDelete;它什麼都沒有做。你可能意味着調用它,而且,返回調用它的結果:

// in onclick 
return checkDelete(); 

您與return陳述if使用是多餘的。簡單地返回confirm結果:

function checkDelete() { 
    return confirm('...'); 
} 

在這一點上,你甚至可以內嵌它:

// in onclick 
return confirm('...'); 

人們普遍不贊成有內嵌的JavaScript。最好是綁定來自JavaScript的事件處理程序。例如,如果你的鏈接了的delete_link的ID,你可以這樣做:

// 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

嘗試:

<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> 
1

<a href=''>標籤總是重定向到目標。返回false並取消操作的概念僅適用於您提交表單時。