微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 如果从AJAX帖子调用,则不会点击图片上传输入

参见英文答案 > Trigger click on input=file on asynchronous ajax done()                                    3个
我有一个隐藏的输入:

<input class="hidden" id="imageInput" type="file" accept="image/*;capture=camera" />

这种“点击”的方式是有一个标签,它调用这样的函数

<label onclick="verifyValue(); return false;" class="hand-pointer">Click me!</label>

我的verifyValue()函数如下所示:

function verifyValue() {
     app.ajax({
                type: "POST",
                dataType: 'json',
                url: myUrl + '/DoSomeVerification',
                contentType: 'application/json; charset=utf-8',
                cache: false,
                data: JSON.stringify(myData),
                success: function (result) {
                            //Success? Cool, stuff has been verified
                            //Let's let them upload their image
                            $('#imageInput').click();
                   }
                error: { 
                            //Other stuff that's not relevant
                   }
    });
}

我的问题是$(‘#imageInput’).click();不起作用.当我通过它进行调试时,它会进入该行,然后绝对不做任何事情.我没有错误,没有上传文件或任何内容的对话框.

为了测试它不是我的代码的其他方面,我摆脱了AJAX帖子并将该功能简化为click事件.当我摆脱AJAX帖子时,它就像一个魅力.

另外,如果我做这样的事情而不是.click():

$('#pickTicketimageUpload').removeClass('hidden');

它使用“选择文件”按钮显示输入,然后让我单击它并上传文件.

我想知道这是否是某种浏览器安全功能,或者是否还有其他我缺少的东西.如果是某种安全功能,那么它周围有什么?

此外,它应该被提及,以便没有人挂断它,这是一个内部应用程序,我不会担心有人可以劫持这个并上传他们的图像而不做AJAX帖子.

解决方法:

由于w3c推荐的浏览器安全功能,现在无法从异步ajax回调打开文件弹出窗口.

请检查Trigger click on input=file on asynchronous ajax done()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐