javascript - 如何在动态创建的输入类型 'file' 上触发单击事件?

标签 javascript jquery

我正在尝试将"file"类型的输入动态添加到表单中。实际上,最终用户可以向表单添加任意数量的文件,因此需要一个数组概念。我可以注入(inject)动态元素,但我不知道如何动态调用刚刚注入(inject)的输入元素的单击。另外,如果用户在输入元素上选择取消,则需要删除动态元素。

我创建了一个jsfiddle显示注入(inject),但运行触发器时单击事件永远不会触发。

注入(inject)此元素后如何触发“click”事件?

jsFiddle Html

<input id='button1' type='button' value='button1'>
<div class='container'>

</div>

jsFiddle JavaScript

$(document).ready(function () {
    $('#button1').on('click', function(event) {
    Button1_Click(event);
  });
});

function Button1_Click(event) {
    var container = $('.container');
  var containerChildren = $(container).children();
  var containerChildrenCount = $(containerChildren).length;
  var inputId = 'fileInput[' + containerChildrenCount + ']';
    $('.container').append('<input id="' + inputId + '" type="file" />');
  $('#' + inputId).trigger('click');
}

最佳答案

尝试从 inputId 变量中删除 []

我把它改成这样,让它在你的 fiddle 中工作

var inputId = 'fileInput-' + containerChildrenCount

关于javascript - 如何在动态创建的输入类型 'file' 上触发单击事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49290957/

相关文章:

javascript - 如何使用nodejs检查DNS?

javascript - 是否有另一种方法可以通过 innerHTML 按钮的 onclick 而不是绑定(bind)到窗口来调用本地函数?

javascript - React Router 更改参数不会触发 componentWillRecieveProps

javascript - 在 Apexcharts.js 中限制 x 轴

javascript - 将 HTML 内容加载到 DIV 后调整颜色框的大小

javascript - 在调用对象中选择元素父级

jquery - 如何从dataTable行集合中获取复选框输入值?

java - 创建井字游戏动画

jQuery fadeIn 和 fadeOut 在 chrome 中滞后,但在 Firefox 中没有

javascript - 加载程序事件类未启用