警告用户离开页面而不保存表单更改时,请避免使用表单字段

时间:2014-03-13 14:13:46

标签: javascript jquery forms onclick onbeforeunload

大家好,

以下代码警告用户他/她在未单击提交按钮的情况下尝试离开网页时未提交表单更改。

 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 个答案:

答案 0 :(得分:1)

使用此功能;

$('form *').change(function(){
    if ($(this).attr("name") != "photo") {
      formmodified = 1;
    }
});

答案 1 :(得分:0)

如果要从选择器中排除元素,可以使用:not()

$('form *:not(input[name="photo"])').change(function(){
    formmodified = 1;
});

或使用功能:

$('form *').not('input[name="photo"]').change(function(){