javascript - 检查输入是否未更改

标签 javascript jquery callback thumbnails

可以使用 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/

相关文章:

javascript - 函数未在 HTMLButtonElement.onclick 中定义

javascript - Canvas - lineTo (x, y) 不生成超过一行

javascript - while 循环内的 Ajax 调用

jquery - CSS-Jquery : Nested <ul> with different CSS possible?

javascript - 从浏览器打印时更改页面标题

javascript - 如何将第三方 JavaScript 库添加到 Meteor 应用程序?

javascript - jquery ui时间选择器选择当前时间并隐藏今天过去的时间选择器选择框

architecture - 事件处理程序和回调之间的区别

c++ - 避免卡住调用回调

java - 这是在这里返回的匿名对象吗?