用javascript获取图像大小
为什么选择了两次图像二级图像的大小未显示 我的完整代码:用javascript获取图像大小,javascript,jquery,html,Javascript,Jquery,Html,为什么选择了两次图像二级图像的大小未显示 我的完整代码: 函数句柄文件(文件){ 对于(var i=0;i
函数句柄文件(文件){
对于(var i=0;i
如果选择同一图像两次,则图像选择实际上没有改变,因此不会触发onchange
处理程序。如果选择不同的图像,则会显示其大小。因为当您第二次单击同一图像时,不会更改文件,因此不会触发onchange
事件,因此不会调用函数handleFiles
,因此不会显示大小。在此情况下使用另一个事件。也许您可以在handleFiles
函数中重置输入文件。这样,即使用户再次选择相同的图像,它也将被视为新图像,因此将触发onchange
事件。像这样重置字段。我测试过了。它工作得很好
<script type="text/javascript">
function handleFiles(files) {
for (var i = 0; i < files.length; i++)
{
alert(files[i].size + ' Bytes' );
reset_field('handleFilesfield');
}
}
function reset_field(id) {
$('#'+id).html($('#'+id).html());
}
</script>
<form>
<span id="handleFilesfield"><input type="file" onchange="handleFiles(this.files)"/></span>
</form>
函数句柄文件(文件){
对于(var i=0;i
如前所述:onchange
在选择同一图像时不会触发(=不要更改值–请参见?这很有意义)。但是,如果每次都要触发onchange
,可以尝试在onmousedown
事件中重置该值。这样,该值将保留以供提交,并强制onchange
触发。演示:注意:如果您需要触摸兼容,您可能还需要使用
ontouchstart
。我选择同一图像两次,我该怎么办?您为什么需要做任何事情?您第一次已经对该图像的详细信息做了一些处理…如果需要保留该值以便可以提交该图像,该怎么办?那么只需将其保存在HandleFile中的某个位置即可。您甚至可以将其分配给页面中的另一个表单字段,以便保留它。至少,您的值不会与文件输入相关联。
<script type="text/javascript">
function handleFiles(files) {
for (var i = 0; i < files.length; i++)
{
alert(files[i].size + ' Bytes' );
reset_field('handleFilesfield');
}
}
function reset_field(id) {
$('#'+id).html($('#'+id).html());
}
</script>
<form>
<span id="handleFilesfield"><input type="file" onchange="handleFiles(this.files)"/></span>
</form>