原因:
是ajaxFileUpload将file上传之后将原有的file元素改变了,需再次绑定change事件,也就是说在upload完之后重新绑定change,
代码:
<input type="file" id="fileUpload" name="fileUpload" accept="application/pdf" style="display: none;">
//上传文件
$("#fileUpload").change(function () {
prompt_btn('文件上传当中', 'w_success', false)
var file = $(this).val();
ajaxfile();
})
function ajaxfile() {
$.ajaxFileUpload({
url: "/jingting/@(lang)/uploadfile?nocompress=0",
type: "post",
fileElementId: "fileUpload",
dataType: "JSON",
success: function (data) {
prompt_btn('文件上传成功', 'w_success', true)
var reg = /<pre.+?>(.+)<\/pre>/g;
var result = data.match(reg);
data = RegExp.$1;
data = JSON.parse(data);
var url = data.data[0].replace('https://static.eudic.net', 'https://static-main.frdic.com');
var str = "[pdf文件名](" + url + " \"pdf文件名\")";
testEditor.insertValue(str);
},
error: function() {
prompt_btn('文件上传失败', 'w_success', true)
}
})
$("#fileUpload").change(function (e) {//再次绑定
ajaxfile();
})
return false;
}
试过第一次change之后将input的value值置为空,无效!
试过用新的input替代旧的,无效!