我有一个jquery确认(“你确定要在保存之前离开吗?”),当文本框或文本区域被更改时,将“isModified”设置为true。现在的问题是,当我按下按钮(保存..)时,确认显示。
按下按钮有没有办法让它跳过确认?
// Confirm leaving page
var isModified = false;
var modifiedMsg = 'Are you sure?';
$('textarea,input').change(function(){
if(!isModified){
isModified = true;
}
});
window.onbeforeunload = function(){
if(isModified){
return modifiedMsg;
}
};
答案 0 :(得分:1)
实际上,如果您的按钮也是input type="submit"
,它将有资格成为选择器。您可以通过使用带属性的选择器
$('textarea,input[type=text]')
或不使用input[type=submit]
答案 1 :(得分:1)
试试这个
$('textarea,input[type!="submit"],input[type!="button"]')
答案 2 :(得分:1)
看起来你正在尝试进行脏检查。您可能想要进行这些更改:
而不是试图捕捉哪些按钮被按下,你真正关心的(我假设)是,当你提交表格时?
$('form').submit(function(e) {
isFormSubmitting = true;
});
然后在脏检查中,确保两者都相应设置。使用一个标志是危险的,因为提交表单可以消除脏状态。
$(window).unload(function(e) {
if(isModified && !isFormSubmitting){
return modifiedMsg;
}
});