可以使用 change()
检查输入是否未更改事件?
我正在与 <input type='file' />
合作我想警告用户,他自己的操作没有进行任何更改。
现在,我刚刚做了一个正常的change()
事件:
// fire the thumbnail (img preview)
$("#file-input").on("change", function () {
readURL(this); // create the thumbnail
});
我缺少什么?
上一个解决方案:
好吧,我找到了一个解决方法,真正的问题是我给用户一个隐藏缩略图的选项,如果他愿意,可以再次打开......
但是只有当用户选择图像时缩略图才会打开,这就是问题所在,因为更改事件会触发此选项打开,因此,如果没有更改,则不会打开缩略图。
所以,当我隐藏缩略图时,我更改了 input file
对于新事件,使更改事件始终触发。
最佳答案
使用一个变量来存储输入的最后一个值,并与更改事件的当前值进行比较,如果它们相同,则没有进行更改:
var last_value = $("#file-input").val();
$("#file-input").on("change", function () {
if (this.value === last_value) alert('no change');
last_value=this.value;
});
编辑:或者您始终可以将输入标记替换为另一个标记,例如 SO answer建议:
var $c = $("#container");
var $f1 = $("#container .f1");
function FChange() {
alert("f1 changed");
$(this).remove();
$("<input type='file' class='f1' />").change(FChange).appendTo($c);
}
$f1.change(FChange);
关于javascript - 检查输入是否未更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12221328/