jQuery - 输入字段更改事件无法正常工作...正如预期的那样

时间:2011-08-02 09:25:43

标签: javascript jquery html

我正在使用jQuery的“更改”功能处理HTML输入文件字段的“onChange”事件。这可以按预期工作,并且确实在元素值发生变化时触发。但是,不在以下场景中:

  1. 用户指定要上传的文件。我们将此文件称为“file.dat”。

  2. jQuery稍后将文件字段的值设置为“”,方法是使用 VAL-功能。

  3. 用户指定要上传的完全相同的文件“file.dat”。

  4. 在上面的场景中,在步骤3中没有调用“onChange”。但是,如果步骤3中的用户指定了不同的文件,则确实会调用它。

    是因为我使用jQuery的val函数来改变值吗?如果我想将输入文件字段重置为其基本/默认值,我还有哪些其他选择?

2 个答案:

答案 0 :(得分:1)

出于安全原因,JavaScript无法影响file输入的值。看起来该值已被清除,但实际上并没有。

您可以通过重置整个表单,或者再次创建元素并将其插入DOM中来代替旧表单来解决这个问题。

这是一个有效的example。请注意使用jQuery live函数绑定change事件。这是必需的,因为每次单击Clear按钮时我们都会在DOM中插入一个新元素。

答案 1 :(得分:0)

您是否尝试过.reset()而不是.val()?