Избегайте полей формы при предупреждении, что пользователь покидает страницу без сохранения изменений формы
Всем привет,
Следующий код предупреждает пользователя, что он / она не отправил изменения формы, когда он / она пытается покинуть веб-страницу, не нажимая кнопку отправки.
formmodified = 0;
$('form *').change(function(){
formmodified = 1;
});
window.onbeforeunload = confirmExit;
function confirmExit() {
if (formmodified == 1)
{
return "You need to save your changes before you leave the page";
}
}
$("input[name='btnPost']").click(function()
{
formmodified = 0;
});
Он прекрасно работает, но мне нужен этот код, чтобы забыть о поле в форме.
Это поле для загрузки фото-файла:
<input type="file" name="photo">
При таком коде, сообщение, предупреждающее о том, что вы покидаете страницу, отображается перед заполнением остальной части формы, и это довольно запутанно для пользователей, поэтому мне нужно избегать этого поля.
большое спасибо
2 ответа
Решение
Использовать этот;
$('form *').change(function(){
if ($(this).attr("name") != "photo") {
formmodified = 1;
}
});
Если вы хотите исключить элемент из селектора, вы можете использовать :not()
,
$('form *:not(input[name="photo"])').change(function(){
formmodified = 1;
});
Или с функцией:
$('form *').not('input[name="photo"]').change(function(){