Javascript JQuery导航警告以输入类型为条件

Javascript JQuery导航警告以输入类型为条件,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我有一个脚本,当用户试图在保存任何更改之前离开页面时,它会发出警告 但是,我希望它在从选择下拉菜单重定向到其他页面时忽略某些类,如果没有进行任何更改,但是如果对其他输入字段进行了更改,并且他们试图通过此选择下拉菜单导航,则会出现警告。以下是脚本: $(document).ready(function () { var unsaved = false; $(":input").change(function(){ unsaved = true; });

我有一个脚本,当用户试图在保存任何更改之前离开页面时,它会发出警告

但是,我希望它在从选择下拉菜单重定向到其他页面时忽略某些类,如果没有进行任何更改,但是如果对其他输入字段进行了更改,并且他们试图通过此选择下拉菜单导航,则会出现警告。以下是脚本:

$(document).ready(function () {
    var unsaved = false;

    $(":input").change(function(){
        unsaved = true;
    });

    $('.send').click(function() {
       unsaved = false;
    });

    function unloadPage(){ 
        if(unsaved){
            return "You have unsaved changes on this page. Do you want to leave this page and discard your changes or stay on this page?";
        }
    }

    $(window).bind('beforeunload', function() {
       if(unsaved){
           return "You have unsaved changes on this page. Do you want to leave this page and discard your changes or stay on this page?";
       }
    });

   //Monitor dynamic inputs
   $(document).on('change', ':input', function(){
       unsaved = true;
   });

   $(document).on('change', '.send1', function(){ 
       unsaved = false;
   });

  window.onbeforeunload = unloadPage;
});
这是一些html:

<select class="form-control send1" name="menus" onchange="location =   this.options[this.selectedIndex].value;"> 
    <option value="/pf" selected>Preferences</option>
    <option value="/pers">Personal</option>
/select>    

<input type="email" class="form-control" id="newsletter" name="newsletter" placeholder="Enter email" value="">

<input type="text" class="form-control" id="firstname" name="adminfirstname" value="" placeholder="First name">

<button type="submit" class="btn btn-sample btn-md reset send" id="send" name="commit"><b>Save</b></button>

您只需从select onchange中删除
unsaved=false

Hi.…从
$(文档)中删除
unsaved=false
,无法解决问题。@user94628哦,你说得对,选择已从
$(“:input”)
更改,请改为尝试此选择器:
$(“:input:not(select)”)
(无选择更改)谢谢……如果您看到我问题中的脚本……那么我想说的是,当选择被更改并且输入不是
。send1
时,其他输入更改应该设置为“unsave=true”。我不确定脚本中是否有错误,因为它不起作用。
 $(document).on('change', '.send1', function(){ 
  if($(":input").not('.send1')){
    $(":input").change(function(){
      unsaved = true;
     });
    }
  });