【发布时间】:2020-07-13 22:56:17
【问题描述】:
我正在尝试使用 javascript 触发文件输入。我正在使用 Django formset,并且我已经获得了当前我的 Javascript 函数的输入字段的 ID:
$(document).ready(function(){
$("#show-image-upload-inputs").click(function(){
$("#image-upload-div").toggle();
});
function open_input (id,input_id) {
$(this.id).on("click", function () {
$(this.input_id).trigger("click");
});
}
});
在我的 HTML 中,我使用 onclick 将它们传递给函数:
<div id="file-0-selector" class="add-image" onclick="open_input(this.id,document.getElementById('id_form-0-image'))"><i class="mt-2 fas fa-plus fa-5x"></i></div>
但是,当我点击它时,我没有看到上传框打开,我想知道如何实现这一点。我已经从我的表单集中获取了图像输入字段,并且 id 似乎是正确的。
提前致谢。
【问题讨论】:
-
嗨,你可以用vanilla js吗?
-
open_input只是绑定另一个“点击”处理程序? -
$(this.id)和$(this.input_id)真的正确吗? AFAICT 您的内联 JS 将id作为字符串传递,input_id作为 DOM 节点(JS,而不是 jQuery)传递。但是要将id用作 jQuery 选择器,您应该使用$('#' + id),而不是$(this.id)。我不知道$(this.input_id)会做什么,因为input_id是一个JS DOM 节点...?
标签: javascript jquery django django-forms django-templates