我不知道对于输入标签,但是直接在按钮上使用点击事件对我没有起作用。在我的情况下,表单立即被提交了。
这里有一个可能的解决方案,适用于有多个按钮的表单(其中只有一个按钮必须显示确认消息)
在视图中:
<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(在外部文件中以便于代码复用):
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;
}
我花了很多时间进行研究和测试才实现这个(需要很多研究和测试),但最终的代码非常简单。
默认情况下,我假设确认是肯定的(如果点击的按钮不是用于显示消息的按钮或用户没有提供有效的消息字符串)。
附加说明:当然,如果用户浏览器阻止客户端代码,则此代码将无法完成任务。
我希望它能帮助某些人,
来自蒙特利尔的Jonathan Parent-Lévesque