参见英文答案 > 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 举报,一经查实,本站将立刻删除。