2016-01-28 2 views
2

У меня есть следующий javascript, чтобы показать окно подтверждения, когда пользователь покидает страницу.window.onbeforeunload разрешить кнопку отправки?

Моя проблема в том, что она отображается, даже когда пользователь нажимает кнопку отправки внутри формы на моей странице. Я не хочу, чтобы это срабатывало при отправке формы и на клике.

Как я могу разрешить отправку формы и пробел в функции ниже?

window.onbeforeunload = function (e) { 
    e = e || window.event; 



    return ''; 
}; 

EDIT -------------------------------

жаль, что теперь форма, это просто кнопка и HREF: у меня есть одна страница, которая использует только кнопки:

<input type="button" value="Save" id="btn-crop" /> 

и ссылка:

<a href="done.php" class=button2>Save</a> 
+2

показать код для отправки формы, а также использовать 'var' –

+0

@self на самом деле это не форма, это кнопка и HREF ссылки (я хочу, чтобы использовать эту функцию в 2 страницы) –

+0

Я уверен, что есть обман. Либо удалить слушателя, либо использовать логическое значение, которое установлено onsubmit – epascarello

ответ

0

Yo u должен иметь возможность проверить, какой объект отправил событие, используя свойство e.currentTarget, а затем, если необходимо, отобразить приглашение.

0

Вы можете позвонить по телефону [Event].stopPropagation в обратном вызове отправки для каждой кнопки на странице.

Эта функция остановит функцию обратного вызова события beforeunload, когда будет отправлена ​​кнопка.

Вы можете узнать больше о [Event].stopPropagation here.

Как так: Button.addEventListener("submit",function(Event){Event.stopPropagation()})

+0

Он также остановит отправку формы. – Barmar

+0

@ Бармар Да ... Я раньше не очень хорошо разбирался в вопросе. Также можно вызвать 'submit' (в элементе формы). – Hydro