#javascript #asp.net
#javascript #asp.net
Вопрос:
Как я могу предотвратить обновление страницы, когда пользователь нажимает на OK
кнопку javascript alert
окна.
<asp:Button ID="btnComplete" runat="server" Text="Complete" OnClientClick ="verify_complete()" />
function verify_complete() {
if (!chkCmnts()) {
alert("Categories/comments are required. ");
return false;
}
}
Спасибо
BB
Ответ №1:
Вы уже возвращаете false из JS, поэтому вам нужно изменить разметку на:
<asp:Button ID="btnComplete" runat="server" Text="Complete" OnClientClick ="return verify_complete()" />
Если verify_complete()
функция вернет true
, она отправит сообщение обратно, если нет, этого не произойдет.
Ответ №2:
Вы не можете предотвратить это, но вы можете уведомить пользователя через всплывающее окно, что он не должен перезагружаться. Это делается с помощью события окна onbeforeunload, которое лучше всего документировано в MDN.
добавьте это в свое всплывающее окно в теге сценария
var controllVar = 1;
добавьте это в свое родительское окно. (всплывающее окно — это возврат window.open(...)
). На самом деле здесь проводится интенсивное тестирование на ошибки, потому что IE в его различных вариантах показывает более одной ошибки.
window.onbeforeunload = function (e) {
//here we try accessing the popup
try {
if(!popup amp;amp; popup.controllVar != 1) {
return;
}
} catch(e) {
return;
}
e = e || window.event;
// For IE and Firefox prior to version 4
if (e) {
e.returnValue = 'YOUR ERROR MESSAGE';
}
// For Safari
return 'YOUR ERROR MESSAGE';
};
Это будет вести себя точно так же, как здесь, в Stackoverflow, если вы добавите текст в текстовую область ответа, а затем попытаетесь покинуть страницу.