更改元素值 IE 11/角度时调用的更改事件



我创建了一个处理文件的指令。当我更改文件或选择新文件时,我调用此代码:

element.val('');

我这样做是为了能够删除选定的文件,然后选择相同的文件。如果我不这样做,当我删除所选文件并再次选择相同文件时,将不会调用change事件,我无法执行我需要执行的操作。

我只需要知道是否有办法避免IE在更改输入值时调用更改事件。

我搜索了一下,发现了这样的评论:

The onchange event on textboxes and textarea elements only fires when the element loses focus, and if its value is now other than its value when it got focus.

因此,当我只是以编程方式更改 de 值时,不应该调用此更改事件。

有什么想法吗?

编辑:

我已经创建了一个带有行为的 jsfiddle

似乎element.val('')发出一个新的change事件,导致对侦听器的多次调用。也就是说,您可以通过检查输入值来避免这种奇怪的行为,如下所示:

element.bind('change', function(){
if(!element.val()) {
return;
}
element.val('');
// code goes here
});

最新更新