参见英文答案 > 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帖子.
解决方法: