我正在使用jQuery的“更改”功能处理HTML输入文件字段的“onChange”事件。这可以按预期工作,并且确实在元素值发生变化时触发。但是,不在以下场景中:
用户指定要上传的文件。我们将此文件称为“file.dat”。
jQuery稍后将文件字段的值设置为“”,方法是使用 VAL-功能。
用户指定要上传的完全相同的文件“file.dat”。
在上面的场景中,在步骤3中没有调用“onChange”。但是,如果步骤3中的用户指定了不同的文件,则确实会调用它。
是因为我使用jQuery的val函数来改变值吗?如果我想将输入文件字段重置为其基本/默认值,我还有哪些其他选择?
答案 0 :(得分:1)
出于安全原因,JavaScript无法影响file
输入的值。看起来该值已被清除,但实际上并没有。
您可以通过重置整个表单,或者再次创建元素并将其插入DOM中来代替旧表单来解决这个问题。
这是一个有效的example。请注意使用jQuery live
函数绑定change
事件。这是必需的,因为每次单击Clear按钮时我们都会在DOM中插入一个新元素。
答案 1 :(得分:0)
您是否尝试过.reset()而不是.val()?