2016-01-07 2 views
0

EDIT: Мой вопрос отличается от «предположительно дубликата», потому что моя проверка того, как не запускать событие при нажатии ссылки, другой вопрос заключается в том, как обнаружить изменения в форма.Проверьте, не нажата ли ссылка на JavaScript

Я использую функцию (taken from here), чтобы обнаружить любые изменения, внесенные в форму, перед тем как покинуть страницу, это прекрасно работает, но также срабатывает, когда я нажимаю кнопку «Сохранить», когда я использую событие onbeforeunload для запуска и я хочу, чтобы это не произошло, когда я нажимаю кнопку сохранения.

Вот мое событие:

window.onbeforeunload = function (e) { 
    e = e || window.event; 
    if (formIsDirty(document.forms[0])) { 
     // For IE and Firefox 
     if (e) { 
      e.returnValue = "You have unsaved changes."; 
      alert("You have unsaved changes."); 
     } 
     // For Safari 
     return "You have unsaved changes."; 
     alert("You have unsaved changes."); 
    } 
}; 

Как я могу предотвратить это событие от стрельбы, когда эта конкретная сохранить ссылку щелкают?

Ссылка:

<a id="ctl00_ContentPlaceHolder1_lbtnSave" href='/save'> 
<img id="ctl00_ContentPlaceHolder1_Image5" class="imgvalign" src="../../images/icons/save.gif"> Save 
</a> 
+0

Возможного дубликат [обнаруживать несохраненные изменения] (HTTP: //stackoverflow.com/questions/155739/detecting-unsaved-changes) – Mathletics

+0

Ответ на ваш вопрос на самом деле связан с вашим вопросом. Вам нужно отслеживать это состояние формы и использовать обработчик кликов на кнопке сохранения, чтобы обновить это состояние. – Mathletics

+0

Нет, это не так, пожалуйста, покажи мне ответ? – user3574492

ответ

0
event.target //DOM object. 

event.target.id //id of source element. 

sourceElement = $(event.target.id); // will get you jQuery object 

вы можете проверить элемент находится кнопка Submit или not.If да, то нет необходимости, чтобы отобразить сообщение

+0

OP не говорит, что они используют jQuery ... –

+0

он может проверить идентификатор элемента без необходимости JQuery –

+0

'event.target.id' ничего не делает в моем случае, вот что я использовал: 'if (e.target.id ===" ctl00_ContentPlaceHolder1_lbtnSave ") { // нажата кнопка сохранения return false; } ' – user3574492

Смежные вопросы