我有一个选择类型
下拉列表,选择后会将用户重定向到另一个页面。我希望他们在使用此选择
下拉菜单时,如果他们尝试在不保存的情况下导航离开,我会收到警告。
但是,当确定输入类型已更改时,它需要忽略此特定的选择类型
作为输入类型
之一。这是我的脚本,但它没有执行所需的操作(其中 .send1
引用实际的选择类型
):
$(document).on('change', '.send1', function(){
if($(":input").not('.send1')){
$(":input").change(function(){
unsaved = true;
});
}
});
如果未保存
== true,则用户会收到警告,指出存在未保存的更改。
最佳答案
.not()
方法返回一个 jQuery 对象,并且对象在 JavaScript 中被视为真值,您应该使用 length
属性来检查该对象的长度收藏。但这不是主要问题,整个逻辑听起来并不乐观。如果您想从选择中排除某个元素,您可以在选择器中使用 :not
:
var unsaved = false;
$(document).on('change', '.send1:not("select.specific")', function() {
unsaved = true;
});
$('select.specific').on('change', function() {
if (unsaved) {
// show a modal/alert something...
} else {
// redirect
}
});
关于javascript - 根据输入类型确定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26593655/