HTML文件输入JS事件

23
有没有在中触发的JavaScript事件?例如:当在已创建的其中一个文件输入框中选择文件时,我想再添加一个额外的文件输入框。

图示:


图示:

file input 1
file input 2
file input 3

用户在输入框 1中选择了一些文件,JS会添加一个新的文件输入框。

file input 1 - somefile.txt
file input 2
file input 3
*NEW* file input 4 
我正在寻找一个有意义的事件,可以将addFileInput方法绑定到该事件上。
我也在使用jQuery 1.4:]
谢谢

没有 input[type=html] 这样的东西 ;) - Douwe Maan
我相信 onchange 应该可以工作。 - Ionuț G. Stan
1
你可以考虑在支持的浏览器中支持<input type="file" multiple=""/>。更多信息请参见:http://hacks.mozilla.org/2009/12/multiple-file-input-in-firefox-3-6/ - SF.
3个回答

40

我相信 onchange 应该可以起作用。


4
@TylerCollier,普通事件写法是element.onChange = function() {};,而jQuery等效写法是$(element).delegate('change', function() {}); - rxgx

27

当使用Firebug选择文件时,这是Firebug记录的事件:

  • 点击 clientX=885, clientY=207
  • 失去焦点
  • 获取焦点
  • 更改
  • DOM激活
  • DOM激活
  • 鼠标移出 clientX=162, clientY=27

我猜想你需要的是更改事件(change):

$ ('#your_form_id input[type=file]').live ('change', function () {
  $(this).parent ().append ($('<input type="file" />'));
})

你只需要调整选择器,之前的代码就可以正常工作。


2
我想你的意思是 type=file ?唯一有意义的方法是同时使用 onclick 和 onchanged,并跟踪内容以查看是否已更改。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接