onchange事件在更改时不会触发

时间:2015-05-29 14:12:26

标签: javascript html browser dynamic event-listener

我的html中有这个,有效:

           <input id="File1" type="file" runat="server" onchange="fileUpload(value)"  /> 

但对于IE8及以下版本,我有一个按钮来创建一个新输入:type = file 它正在工作并上传文件。

但我需要先将值发送给函数。

            newUploadBox.setAttribute("onchange", "fileUpload(value)");

现在当我进入检查元素时,一切看起来都是正确的。

它像原始输入一样呈现出来。

不幸的是,它没有像第一个那样去做功能。

我喜欢这里的一些帖子: Dynamically added SELECT element does not fire onchange event in Internet Explorer &安培;&安培; onchange with alert not working in ie

但没有人能够帮助我。

https://jsfiddle.net/satjzr6z/

2 个答案:

答案 0 :(得分:1)

试试此代码

newUploadBox.onchange = fileUpload.bind(this, value);

function.prototype.bind - 创建一个与原始函数具有相同主体的绑定函数

Method description

答案 1 :(得分:1)

我添加了一个onClientClick事件处理程序来检查我的验证,而不是做一个onchange事件监听器。

我使用了以下功能:

$_ENV

这将解析我的所有文件上传输入字段。 如果一个人不符合我的要求,它将不允许他们上传。 这是我能想到的最好的工作,可以在IE8中使用。

我还使用了一个基本上是我的&#34; onClientClick&#34;的诱饵按钮。因为我不想意外上传。

每个循环的第二个循环检查所有循环验证的条件,如果它们这样做,它将从DOM中取出诱饵按钮并引入ASP.NET按钮进行上传。