javascript - 点击隐藏文件输入jQuery报错

标签 javascript jquery html css file-upload

我试图点击一个隐藏的输入文件。我已经测试过了here并且工作正常。

在实际元素中,我收到此错误 Uncaught RangeError: Maximum call stack size exceeded

这是我的:

HTML:

<div id="upload-image-container" class="upload-image-container inline-block">
    <h2 class="inline-block">+ Upload Your Photo!</h2>
    <input type="file" name="images" id="images" />
</div>

jQuery:

jQuery("#upload-image-container").click(function() {
    // e.preventDefault();
    jQuery("input[type='file']").click();
});

我已经尝试添加 e.preventDefulte.preventImmediatePropagation 但我仍然遇到同样的错误。

不确定我该如何真正解决这个问题。

我在 file 输入上有一个监听器...图像会自动上传。不确定这是否是导致问题的原因。我尝试删除它,但结果相同。

input.addEventListener("change", function (evt) {
        var i = 0, len = this.files.length, img, reader, file;

        for ( ; i < len; i++ ) {
            file = this.files[i];

            if (!!file.type.match(/image.*/)) {
                if ( window.FileReader ) {
                    reader = new FileReader();
                    reader.onloadend = function (e) { 
                        // showUploadedItem(e.target.result, file.fileName);
                        jQuery("#filename").val(file.name);
                    };
                    reader.readAsDataURL(file);
                }
                if (formdata) {
                    formdata.append("images[]", file);
                }
            }   
        }

        if (formdata) {
            jQuery.ajax({
                url: "upload.php",
                type: "POST",
                data: formdata,
                processData: false,
                contentType: false,
                success: function (res) {
                    // document.getElementById("response").innerHTML = res; 
                }
            });
        }
    }, false);

最佳答案

写这个,

jQuery("input[type='file']").click(function(e){
  e.stopPropagation();
});

该错误是由于子项引起的事件传播而引发的。只是阻止它。

关于javascript - 点击隐藏文件输入jQuery报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24505477/

相关文章:

javascript - 从事件监听器更新全局变量

javascript - 不规则形状的碰撞检测

javascript - 从对象数组中的字符串中查找数值并进行计算

javascript - 如何用Jquery制作从左到右的填充动画

python - split ("\n") 和 splitlines() 都无法拆分字符串

javascript - 无法将带 Angular 列中的数字相加

javascript - 如何禁用 anchor (链接)标签(转换为跨度)

javascript - JavaScript 中的 3 级引号

html - Div 在 rotateY div 中始终面向屏幕

iphone - 如何用手指在 iPhone Web 应用程序 HTML5 上绘图 - 这可能吗?