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;
});
}
});