如何跟踪使用javascript选择文件?

时间:2010-12-19 14:56:36

标签: javascript select upload input field

所以如果我有一个输入字段:

<input type="file" name="file" id="file" />

我点击它并选择一个文件,当我按下Open时,我想提交表单并上传文件而不点击<input>添加的按钮。

1 个答案:

答案 0 :(得分:2)

正如goreSplatter在下面指出的那样,请注意这种行为在用户体验方面并不令人意外。例如,将文件附加到像GMail这样的电子邮件中的内容可能完全有效;但除非用户有机会取消这些附件等,否则在最终确定之前,您可能会失去UX漏洞。但是我希望你可能已经解决了UX问题并且没有做些傻事。 : - )

回答问题:您可以使用change事件处理程序(例如onchange=或DOM2等效的addEventListener(或IE上的attachEvent)来执行此操作。

示例(live copy):

hookEvent(document.getElementById('fileInput'),
          'change',
          inputChanged);

function inputChanged() {
  display("The input's value changed");
}

...其中hookEvent是用于连接事件处理程序的实用程序函数(请参阅下面的链接以获取一个示例,但它未进行优化;如果使用类似jQuery的库,{{ 3}},PrototypeYUIClosure,它们将包含跨浏览器挂钩事件的方法。

上面链接的示例适用于Linux上的Chrome,Firefox和Opera for Linux,IE6和IE7,因此整体上可能得到很好的支持。