2013-06-02 94 views
0

在下面的代码中,我想要显示上传文件在div或label元素中的大小。但是,当我想在输入元素中显示它时,它不起作用。想要在输入标记中使用javascript/jquery显示文件上传大小

<script> 
    var maxfilesize = 2097152;//2MB; 
    $('#fuAttachments').live("change", function() { 
     $("#msg").text(""); 

     var tt = $(this).val(); 

     var size = this.files[0].size; 
     $("#msg").append(Math.ceil(size/1024)); 

    }); 
</script> 
<input id="fuAttachments" type="file" /> 

我想在#msg

<input id="msg" type="text" /> 
+0

边注:尝试使用。对()。从jQuery 1.7开始,.live()方法已被弃用。 –

回答

0

显示上传的文件的大小时,我想将其显示为输入值。使用.val().append()不适用于输入。

1

当您更换这条线应该工作:

$("#msg").append(Math.ceil(size/1024)); 

有了这个:

$("#msg").val(Math.ceil(size/1024)); 

.val()功能将所有匹配标签的价值属性,而.append()功能的插入内容元素的结尾。

+0

非常感谢你帕特里克,它的作品,因为我想... thanx为您的答复... –

+0

现在我有另一个问题,如果我使用jquery.min.js然后它的工作,但如果我使用jquery.1.9。 js然后它不工作,但我想使用jquery.1.9.js。 –

+0

你为什么要使用jquery.1.9.js?缩小版本节省了带宽并缩短了加载时间。当您使用非缩小版本时什么不起作用? –

1

使用 “VAL” 而不是 “追加”

$('#msg').val(size); 
1

尝试:

$("#msg").val(Math.ceil(size/1024)); 

$("#msg").val(size); 


为什么.VAL?

Form jQuery Doc:
获取匹配元素集中第一个元素的当前值或设置每个匹配元素的值。 .val()方法主要用于获取表单元素的值,如input,select和textarea。在元素的情况下,.val()方法返回一个包含每个选定选项的数组;如果未选择任何选项,则返回null。

0

请使用以下脚本:

<script> 
var maxfilesize = 2097152;//2MB; 
$('#fuAttachments').live("change", function() { 
    var size = $(this).files[0].size; 
    $("#msg").val(Math.ceil(size/1024)); 

}); 
</script> 
相关问题