87,910
社区成员
发帖
与我相关
我的任务
分享
var date = Date.parse(new Date())/1000;
var a;
$(function(){
$(".upload").ready(function(){
var url_b = $(this).find(".file").attr('id');
initFileInput(url_b);
});
})
$(".upload").click(function(){
var url_b = $(this).find(".file").attr('id');
initFileInput(url_b);
});
先要谢谢各位的帮忙
我换成click触发就可以拿到点击的input的id了,但是运行不了iniFileinput()(这是bootstrap的fileinput的初始函数),提示的是iniFlieinput不是个function
//是fileinput的初始方法
function initFileInput(ctrlName) {
var control = $('#' + ctrlName);
control.fileinput({
language: 'zh',
uploadUrl: "图片处理的url", //上传后台操作的方法
uploadAsync: true, //设置上传同步异步 此为同步
maxFileSize: 200000,
showCaption:true,
showPreview:true,
showRemove:true,
initialPreview:false,
dropZoneEnabled:false,
previewFileIcon: '<i class="fa fa-file"></i>',
allowedFileExtensions: ['mp4','doc'], //限制上传文件后缀
}).on("fileuploaded", function (event, data, id, index){
var video_path = date+'.mp4';
$('.upload').find('.file-caption-name').html(video_path);
$('.upload').find('#param_video').val(video_path);
});
}
发现initFileInput()只要收到触发的的id就提示错误,换成each()触发可以运行,但是所有的input都会变成上传第一个的文件
这是为毛累
PS:一个页面有多个input上传 想要实现的效果是点击当前的Input就会触发iniFileInput(),上传当前文件 $(function(){
initFileInput($(".upload .file").attr('id'));
})
<div class="upload">
<input id="input-id-1" type="file" class="file" data-preview-file-type="text" >
<input id="input-id-2" type="file" class="file" data-preview-file-type="text" >
<input id="input-id-3" type="file" class="file" data-preview-file-type="text" >
</div>
<script>
$( document ).ready( function () {
var id,
$file
;
$file = $( ".upload" ).find( ".file" );
id = $file.attr( "id" );
console.info( "id: " + id ); //=> input-id-1 :只去第一个input的id
$file.each( function () {
var _id
;
_id = $( this ).attr( "id" );
console.info( "_id: " + _id );
} );
/*
_id: input-id-1
_id: input-id-2
_id: input-id-3
*/
} );
</script>