2011-02-10 37 views
21

Tôi có liên kết này:JavaScript hộp cảnh báo với xác nhận vào nút bấm

<p id="accept-favor"><a title="Accept this Favor" href="?wp_accept_favor=<?php comment_ID(); ?>">Accept this Favor</a></p>

Tôi muốn hiển thị một hộp cảnh báo JavaScript khi người dùng nhấp nó nói: "Bạn có chắc chắn bạn muốn chấp nhận điều này trả lời như là ân huệ của bạn? " với hai nút một nói rằng "Có" mà sẽ cho phép các chức năng để chạy và khác nói "Không" mà sẽ chỉ hủy bỏ postback và giữ cho người dùng trên trang.

Tôi làm như thế nào? Cảm ơn :)

+4

'onclick = "return confirm ('?' This.innerText +);" ' –

Trả lời

31

Bạn có thể dễ dàng làm điều đó với một xác nhận onclick:

<p id="accept-favor"><a title="Accept this Favor" 
    href="?wp_accept_favor=<?php comment_ID(); ?>" 
    onclick="return confirm('Are you sure you would like to accept this reply as your favor?');" 
    >Accept this Favor</a></p> 

Mặc dù điều này sẽ nói OK/Cancel thay vì Yes/No. Nếu bạn thực sự muốn Có/Không, bạn sẽ phải sử dụng hộp thoại tùy chỉnh.

+0

Bạn đang thiếu một dấu ngoặc đóng. Mã onClick phải là 'onclick =" return confirm ('Bạn có chắc chắn muốn chấp nhận thư trả lời này làm lợi ích của bạn?'); "' – TMC

+0

Rất tiếc, đã sửa, cảm ơn –

12

Bạn có thể viết onclick="return confirm('Are you sure?');".

confirm function hiển thị hộp thoại OK/Hủy và trả lại true nếu người dùng nhấp OK.
return ing false từ trình xử lý onclick sẽ hủy tác vụ mặc định của lần nhấp.

1

Như câu trả lời khác nói về trực tiếp onclick, tôi muốn trình bày một giải pháp cho một "đẹp hơn" (IMO = theo ý kiến ​​của tôi) phiên bản sử dụng các phương pháp addEventListenerpreventDefault. Bởi vì theo cách này, bạn có thể ràng buộc thêm nhấp vào trình xử lý.

HTML

<a href="#" id="confirmClickActionElementId">click me</a> 

Javascript

document 
    .getElementById("confirmClickActionElementId") 
    .addEventListener("click", function(e){ //e => event 
     if(! confirm("Do you really want to do this?")){ 
      e.preventDefault(); // ! => don't want to do this 
     } else { 
      //want to do this! => maybe do something about it? 
      alert('Ok, lets do this!'); 
     } 
    }); 

Fiddle: http://jsfiddle.net/ouyf86ya/

... hoặc cũ "return" cách:

document 
    .getElementById("confirmClickActionElementId") 
    .addEventListener("click", function(){ 
     return confirm("Do you really want to do this?") ; 
    }); 

Fiddle: http://jsfiddle.net/y2jLpkbb/

6

Bạn có thể sử dụng chức năng này:

myFunction() { 
    var x; 
    if (confirm("Are you sure?") == true) { 
     x = "You pressed OK!"; 
    } else { 
     x = "You pressed Cancel!"; 
    } 
    return x; 
} 
myFunction(); 
Các vấn đề liên quan