2012-01-11 42 views
17

Tôi cần cảnh báo 'OK'/'Hủy' javascript khi tôi nhấp vào liên kết.cảnh báo bật lên javascript khi nhấp vào liên kết

Tôi có mã cảnh báo:

<script type="text/javascript"> 
<!-- 
var answer = confirm ("Please click on OK to continue.") 
if (!answer) 
window.location="http://www.continue.com" 
// --> 
</script> 

Nhưng làm thế nào để làm cho nó vì vậy đây chỉ chạy khi nhấp chuột vào một liên kết nào đó?

Trả lời

10

chỉ làm cho nó chức năng,

<script type="text/javascript"> 
function AlertIt() { 
var answer = confirm ("Please click on OK to continue.") 
if (answer) 
window.location="http://www.continue.com"; 
} 
</script> 

<a href="javascript:AlertIt();">click me</a> 
+1

cảm ơn, nếu tôi bấm hủy mặc dù nó vẫn mở liên kết/ – user1022585

+0

@ user1022585 bạn cần 'return false' để dừng liên kết khỏi điều hướng. Xem câu trả lời của tôi bên dưới - phương thức 'Confirm' trả về một' boolean' mà bạn có thể thoát khỏi hàm của bạn với ... – xandercoded

+0

xin lỗi tôi đã sao chép mã của bạn và mã của bạn đã sai. nếu người dùng nói "ok" câu trả lời sẽ đặt "true" so với vì vậy chúng tôi không cần phải "!", tôi đã thay đổi nó. – ocanal

3

Để làm điều này bạn cần phải đính kèm các handler để một neo cụ thể trên trang. Đối với các hoạt động như thế này, việc sử dụng khung tiêu chuẩn dễ dàng hơn nhiều như jQuery. Ví dụ nếu tôi đã có HTML sau

HTML:

<a id="theLink">Click Me</a> 

tôi có thể sử dụng jQuery sau để hookup một sự kiện để liên kết cụ thể.

// Use ready to ensure document is loaded before running javascript 
$(document).ready(function() { 

    // The '#theLink' portion is a selector which matches a DOM element 
    // with the id 'theLink' and .click registers a call back for the 
    // element being clicked on 
    $('#theLink').click(function (event) { 

    // This stops the link from actually being followed which is the 
    // default action 
    event.preventDefault(); 

    var answer confirm("Please click OK to continue"); 
    if (!answer) { 
     window.location="http://www.continue.com" 
    } 
    }); 

}); 
25

Bạn có thể sử dụng thuộc tính onclick, chỉ return false nếu bạn không muốn tiếp tục;

<script type="text/javascript"> 
function confirm_alert(node) { 
    return confirm("Please click on OK to continue."); 
} 
</script> 
<a href="http://www.google.com" onclick="return confirm_alert(this);">Click Me</a> 
+0

Điều này thực sự làm việc tốt hơn nhiều - giải pháp tổng quát hơn cần được chấp nhận. –

11

Độc dòng làm việc tốt:

<a href="http://example.com/" 
onclick="return confirm('Please click on OK to continue.');">click me</a> 

Thêm dòng khác với một liên kết khác nhau trên cùng một trang hoạt động tốt quá:

<a href="http://stackoverflow.com/" 
onclick="return confirm('Click on another OK to continue.');">another link</a> 
0
function alert() { 
    var answer = confirm ("Please click on OK to continue.") ; 

    if(answer){ 
     window.location="url"; 
    } 
} 
+1

Để tăng chất lượng phản hồi (và làm như vậy, không bị gắn cờ), bạn có thể giải thích tại sao mã của anh ấy không hoạt động. Đôi khi từ giúp nhiều hơn sau đó mã. –

Các vấn đề liên quan