所以如果我有一个输入字段:
<input type="file" name="file" id="file" />
我点击它并选择一个文件,当我按下Open
时,我想提交表单并上传文件而不点击<input>
添加的按钮。
答案 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}},Prototype,YUI或Closure,它们将包含跨浏览器挂钩事件的方法。
上面链接的示例适用于Linux上的Chrome,Firefox和Opera for Linux,IE6和IE7,因此整体上可能得到很好的支持。