Javascript 从按钮引发onchange事件html输入文件

Javascript 从按钮引发onchange事件html输入文件,javascript,onchange,Javascript,Onchange,我想通过单击按钮引发输入文件类型的onchange事件: 例如: <input id="File1" type="file" onchange="show(this)" /> <input id="Button1" type="button" value="button" onclick="butclick()" /> <input id="Button2" type="button" value="button" onclick="document.getEle

我想通过单击按钮引发输入文件类型的onchange事件:

例如:

<input id="File1" type="file" onchange="show(this)"  />
<input id="Button1" type="button" value="button" onclick="butclick()" />
<input id="Button2" type="button" value="button" onclick="document.getElementById('File1').onchange()" />
<input id="Button3" type="button" value="button" onclick="document.getElementById('Button1').onclick()" />



函数butclick(){
警惕(“是”);
}

我可以触发另一个按钮的click事件,但不能触发输入文件的onchange事件。

我建议将所有Javascript代码写入脚本标记,以便将所有内容放在一个位置

当元素(在您的案例中为输入类型文件)发生更改时,而不是通过单击另一个元素来触发“更改”事件

例如:

function handleFileInput() {
 console.log("change event of file input triggered.");   
}

document.getElementById("files").addEventListener("change", handleFileInput, true);
在本例中,更改事件附加到文件输入,当用户选择文件时,事件被调度

您可以在JSFIDLE上尝试以下代码:


但是,如果您确实希望通过单击按钮来调度事件,则可以尝试使用dispatchEvent:


希望这有帮助

我建议将所有Javascript代码写入脚本标记中,以便将所有内容都放在一个地方

当元素(在您的案例中为输入类型文件)发生更改时,而不是通过单击另一个元素来触发“更改”事件

例如:

function handleFileInput() {
 console.log("change event of file input triggered.");   
}

document.getElementById("files").addEventListener("change", handleFileInput, true);
在本例中,更改事件附加到文件输入,当用户选择文件时,事件被调度

您可以在JSFIDLE上尝试以下代码:


但是,如果您确实希望通过单击按钮来调度事件,则可以尝试使用dispatchEvent:


希望这有帮助

+1用于使用
addEventListener
而不是内联JS。我不能通过按钮或div单击触发更改事件。这就是我想做的。感谢您+1使用
addEventListener
而不是内联JS。我不能通过按钮或div单击触发更改事件。这就是我想做的。非常感谢。