gpt4 book ai didi

jquery - 文件上传超出最大调用堆栈大小

转载 作者:行者123 更新时间:2023-12-01 08:35:53 25 4
gpt4 key购买 nike

我想打开窗口以在单击按钮时上传图像,但收到此错误:

Uncaught RangeError: Maximum call stack size exceededEximum

jQuery('.upload-wrap-div').click(function(e) {
jQuery("input[type='file']").trigger('click');
})

jQuery("input[type='file']").change(function() {
jQuery('#val').text(this.value.replace(/C:\\fakepath\\/i, ''))
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="form-group files text-center upload-wrap-div" ref="fileform">
<input type="file" name="img" multiple style="display:none">
<span id='val'></span>
<a class="btn" id='button'>Upload Photo</a>
<h6>DRAG & DROP FILE HERE</h6>
</div>

最佳答案

这是因为您在 click 事件处理程序中触发了 click 事件,因此创建了无限循环。

要解决此问题,请将容器 div 更改为 label。这样,您就不需要 click 处理程序,因为默认的 label 行为会将焦点放在内部表单控件上。试试这个:

jQuery(function($) {
$("input[type='file']").change(function() {
$('#val').text(this.value.replace(/C:\\fakepath\\/i, ''));
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label class="form-group files text-center upload-wrap-div" ref="fileform">
<input type="file" name="img" multiple style="display:none">
<span id='val'></span>
<a class="btn" id='button'>Upload Photo</a>
<h6>DRAG &amp; DROP FILE HERE</h6>
</label>

另请注意 document.ready 处理程序中 $ 的别名使用。这避免了在代码中使用 jQuery 关键字,从而减少了冗长。

关于jquery - 文件上传超出最大调用堆栈大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55746206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com