Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何跟踪是否使用javascript选择了文件?_Javascript_Select_Upload_Input_Field - Fatal编程技术网

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

如何跟踪是否使用javascript选择了文件?,javascript,select,upload,input,field,Javascript,Select,Upload,Input,Field,因此,如果我有一个输入字段: <input type="file" name="file" id="file" /> 我点击它并选择一个文件,当我按下Open时,我想提交表单并上传文件,而无需点击添加的按钮,正如Goresplater在下面指出的,请注意,这种行为在用户体验方面并不令人惊讶。例如,像GMail一样将文件附加到电子邮件中,这样做可能是完全有效的;但是,除非用户有机会在事情最终确定之前取消这些附件等,否则您可能会陷入用户体验的困境。但我希望您可能已经了解了用户体验方

因此,如果我有一个输入字段:

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


我点击它并选择一个文件,当我按下
Open
时,我想提交表单并上传文件,而无需点击

添加的按钮,正如Goresplater在下面指出的,请注意,这种行为在用户体验方面并不令人惊讶。例如,像GMail一样将文件附加到电子邮件中,这样做可能是完全有效的;但是,除非用户有机会在事情最终确定之前取消这些附件等,否则您可能会陷入用户体验的困境。但我希望您可能已经了解了用户体验方面的内容,并且没有做一些愚蠢的事情。:-)

回答问题:您可以使用
change
事件处理程序,例如
onchange=
或通过
addEventListener
(或IE上的
attachEvent
)的DOM2等效程序来实现这一点

示例():

…其中,
hookEvent
是用于连接事件处理程序的实用函数(例如,请参见下面的链接,但它没有经过优化;如果使用诸如、或之类的库,它们将包括跨浏览器连接事件的方法)


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

+1。它起作用了。这将是一个恼人的网站,虽然…有趣的东西,非常感谢它的工作完美!我不使用任何库,但我真的不明白它是如何工作的,我是说事件侦听器是如何工作的?它像彗星一样工作吗?元素本身在发生更改时启动函数,或者类似于
setInterval
,因此它总是检查元素是否已更改?@CIRK:当元素的值更改时,浏览器会触发该事件:
hookEvent(document.getElementById('fileInput'),
          'change',
          inputChanged);

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