Javascript как использовать диалоговое окно подтверждения onSubmit с двумя кнопками отправки на JSP
моя форма в настоящее время имеет две кнопки отправки. Для Search
и :
function confirmComplete() {
alert("confirmComplete");
var answer=confirm("Are you sure you want to continue");
if (answer==true)
{
return true;
}
else
{
return false;
}
}
любая помощь будет оценили!
6 ответов
установить onclick
атрибут кнопки "Mark Complete" для этого
onclick="return confirm('Are you sure you want to continue')"
и удалите функцию confirmComplete из формы
Вы можете. Вы можете положить ваши кнопки, как это
<input type="submit" value="Search" />
<input type="submit" value="Mark Complete" onclick="{return confirmComplete();}" />
, когда Пометить Как Завершенную кнопка нажата, затем confirmComplete
функция будет вызываться, когда пользователь говорит OK в диалоговом окне подтверждения будет отправлена только форма.
вам нужно сделать событие от щелчка по кнопке, а не отправки формы. Там нет crossbrowser способ узнать, что представил форму.
Итак, вот решение обхода:
<form id="frm" action="page.php" method="post" onsubmit="return onSubmit();">
<input />
<input type="submit" value="sub1" onclick="sub1();" />
<input type="submit" value="sub2" onclick="sub1();" />
</form>
<script type="text/javascript">
<!--
var frm = document.getElementById('frm');
function onSubmit(){
return false;
}
function sub1(){
alert('s1');
frm.submit();
}
function sub2(){
alert('s2');
}
//-->
</script>
при вызове функции" confirm () "javascript всплывает, например onclick=" return confirm ('вы уверены, что продолжите?") ", подтвердите, что появится окно с сообщением " вы уверены, что продолжите?"с двумя вариантами" ok " и "отмена".когда вы нажмете ok, он вернет true и продолжит дальнейшее выполнение веб-страницы или если вы нажмете отмена, он вернет false и остановит дальнейшее выполнение веб-страницы.
Я не знаю для тега input, но это не сработало для меня событие click на кнопку. В моем случае форма была отправлена сразу.
вот возможное решение для формы со многими кнопками (для которой только одна из них должна отображать сообщение подтверждения)
в виде:
<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 (во внешнем файле для повторного использования кода):
/**
* 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;
}
мне было довольно трудно достичь этого (требуется много исследований и тестирование), но полученный код довольно прост.
по умолчанию я предполагаю, что подтверждение да (в случае, если нажатая кнопка не предназначена для отображения сообщения или если пользователь не предоставляет допустимую строку сообщения).
дополнительная информация: конечно, этот код не будет делать трюк, если пользовательский браузер блокирует клиентский код.
Я надеюсь, это поможет кому-то,
Jonathan Parent-Lévesque из Монреаля