Tôi không biết cho thẻ đầu vào nhưng nó không hoạt động cho tôi với sự kiện nhấp trực tiếp trên nút. Trong trường hợp của tôi, biểu mẫu đã được đăng ngay lập tức.
Dưới đây là một giải pháp khả thi cho một hình thức với nhiều nút (mà chỉ một trong số họ phải hiển thị thông báo xác nhận)
Trong giao diện:
<FORM name="F_DESTINATION_DB" id="F_DESTINATION_DB" method="POST" onsubmit="return popConfirmationBox('<?php echo LanguageControler::getGeneralTranslation("DELETE_CONFIRMATION_MESSAGE", "Deleting is an irreversible action. Are you sure that you want to proceed to the deleting?");?> ','DELETE_DB_BUTTON')">
Javascript (trong tập tin bên ngoài để tái sử dụng mã):
/**
* Display a confirmation message box to validate if we must post the page or not.
*
* @param message String to display
* @param tagId String id of the tag that must display the message.
*
* @return Boolean (confirmation)
*/
function popConfirmationBox(message, tagId){
var confirmation = true;
if (typeof tagId === 'string' && document.activeElement.id.toUpperCase() === tagId.toUpperCase()) {
if (typeof message === 'string' && message.length > 0) {
confirmation = window.confirm(message);
}
}
return confirmation;
}
Tôi đã khá khó khăn để đạt được điều này (cần nhiều nghiên cứu và thử nghiệm), nhưng mã kết quả khá đơn giản.
Theo mặc định, tôi cho rằng xác nhận là có (trong trường hợp nút được nhấp không phải là nút có nghĩa là hiển thị thư hoặc nếu người dùng không cung cấp chuỗi thư hợp lệ).
Lưu ý bổ sung: Tất nhiên, mã này sẽ không thực hiện thủ thuật nếu trình duyệt của người dùng chặn mã phía máy khách.
Tôi hy vọng nó sẽ giúp ai đó,
Jonathan Parent-Levesque từ Montreal
Nguồn
2015-07-22 19:59:42
Bạn có thể chỉ sử dụng javascript - thiết lập các nút nộp cho được nút thường xuyên type = "button" đặt mỗi một onclick đến một khác nhau và nếu bạn muốn gửi biểu mẫu, chỉ cần sử dụng javascript: [form_element] .submit(); – Adidi
Tôi phải giữ chúng dưới dạng loại = "gửi" do các chức năng khác đã được đưa vào vị trí. – Richard