使用jQuery在上传前预览图片

使用jQuery在上传前预览图片可以分为以下几个步骤:

步骤一:添加HTML结构

<form>
  <input type="file" id="file">
  <img src="" id="preview">
</form>

其中,<input type="file">用于选择本地的图片文件,<img>则用于预览选中的图片。id="file"id="preview"则用于与jQuery进行绑定。

步骤二:引入jQuery库

<head>标签中引入jQuery库:

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

步骤三:添加jQuery代码

$(function(){
  // 当文件域内容改变时触发
  $('#file').change(function(){
    // 生成预览图
    var reader = new FileReader();
    reader.readAsDataURL(this.files[0]);
    reader.onload = function(){
      $('#preview').attr('src', this.result);
    };
  });
});

上述代码中,$(function(){})表示当页面加载完成时执行的代码。$('#file')表示获取id="file"的元素。change()则表示当文件域内容改变时触发的事件。this.files[0]表示获取第一个选中的图片。readAsDataURL()则用于读取图片文件,并返回该文件的内容以base64的形式编码。而onload()则是文件读取完成后的回调函数,将base64编码的内容设置为<img>标签的src属性,即可显示预览图。

示例一:基本的图片预览

<!DOCTYPE html>
<html>
<head>
  <title>图片预览示例</title>
  <meta charset="UTF-8">
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body>
  <form>
    <input type="file" id="file">
    <img src="" id="preview" alt="预览图">
  </form>
  <script>
    $(function(){
      // 当文件域内容改变时触发
      $('#file').change(function(){
        // 生成预览图
        var reader = new FileReader();
        reader.readAsDataURL(this.files[0]);
        reader.onload = function(){
          $('#preview').attr('src', this.result);
        };
      });
    });
  </script>
</body>
</html>

运行上述示例,可以选择一张本地图片后,在页面上看到预览图。

示例二:改进版图片预览(添加判断、限制图片大小、添加非图片类型判断)

<!DOCTYPE html>
<html>
<head>
  <title>图片预览示例</title>
  <meta charset="UTF-8">
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body>
  <form>
    <p>选择图片:<input type="file" id="file"></p>
    <img src="" id="preview" alt="预览图" style="display:none">
  </form>
  <script>
    $(function(){
      // 当文件域内容改变时触发
      $('#file').change(function(){
        var file = this.files[0];
        var type = file.type;
        // 判断是否为图片
        if(!/\.(jpg|jpeg|png|gif)$/.test(file.name.toLowerCase()) || !/image\/\w+/.test(type)){
          alert('请选择图片!');
          return false;
        }
        // 判断图片大小是否超过1MB
        if(file.size > 1024 * 1024){
          alert('图片大小不能超过1MB!');
          return false;
        }
        // 生成预览图
        var reader = new FileReader();
        reader.readAsDataURL(file);
        reader.onload = function(){
          $('#preview').attr('src', this.result);
          $('#preview').show();
        };
      });
    });
  </script>
</body>
</html>

在以上示例基础上,添加了如下改进:
- 添加了判断非图片类型的代码;
- 添加了限制图片大小不能超过1MB的代码;
- 预览图的<img>标签加上了style="display:none",在还没有选中任何图片时不显示预览图,只有选中图片后才显示预览图。

运行上述示例,可以选择一张小于1MB的本地图片后,在页面上看到预览图。而如果选择的图片大小超过1MB、或者不是图片类型,则会弹出提示框。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用jQuery在上传前预览图片 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • Angularjs的启动过程分析

    AngularJS 的启动过程分析 AngularJS 是一个流行的前端 JavaScript 框架,它提供了许多工具和技术来帮助开发者构建动态 Web 应用程序。在学习 AngularJS 的时候,了解它是如何启动的是非常重要的,因为这能够帮助你更好地理解整个框架的原理。在这篇文章中,我们将详细讲解 AngularJS 的启动过程分析。 AngularJS…

    jquery 2023年5月27日
    00
  • jQWidgets jqxGauge LinearGauge animationDuration属性

    jQWidgets jqxGauge LinearGauge animationDuration属性 jQWidgets是一个基于jQuery的UI组件库,提供了丰富的UI件和工具,包括表格、图、日历、菜单等。jqxauge和jqxLinearGauge是jQWidgets中的两个组件,用于显示仪表盘和线性仪表盘。这个组件都提供了animationDurat…

    jquery 2023年5月9日
    00
  • 用例子解释 select和select2

    要详细讲解“用例子解释 select和select2”的话,我们首先需要清楚的了解select与select2的基础知识,接着再通过示例来掌握它们的使用方法。 Select和Select2的基础知识 Select Select是一种基于HTML的标准控件,它允许用户从预定义选项列表中选择一个或多个选项。在使用时,需要使用select标签将可选项进行包裹,并在…

    jquery 2023年5月13日
    00
  • jQWidgets jqxTabs addAt()方法

    jQWidgets是一套基于jQuery的集成UI库,提供了丰富的组件和功能。其中Tabs组件是一种选项卡式组件,能够方便地实现多标签页内容切换。addAt()方法是Tabs组件中的一个方法,可以在指定位置动态添加新的标签页。 1. addAt()方法的语法 $("#jqxTabs").jqxTabs("addAt",…

    jquery 2023年5月12日
    00
  • jQWidgets jqxKanban destroy()方法

    jQWidgets jqxKanban 是一种看板控件,用于在 Web 应用程序中创建看板。destroy() 方法是 jqxKanban 控件的一个方法,用于销毁看板控件。以下是 jqxKanban 的 destroy() 方法的详细说明,以及两个示例说明。 方法 destroy() 方法用于销毁看板控件。该方法没有参数。 // 销毁 jqxKanban …

    jquery 2023年5月10日
    00
  • jQuery基于json与cookie实现购物车的方法

    针对该话题,我将提供一个详细攻略: jQuery基于JSON与cookie实现购物车 在网购过程中,购物车是非常关键的一环。那么如何使用jQuery基于JSON和cookie实现一个购物车呢?以下将介绍具体步骤以及相应的代码示例。 步骤一:创建商品列表 首先,我们需要构建一个商品列表,例子中包含了三件商品。具体的代码如下: <ul class=&quo…

    jquery 2023年5月28日
    00
  • 关于hashchangebroker和statehashable的补充文档

    关于“关于hashchangebroker和statehashable的补充文档”的完整攻略,我会从以下几个方面进行详细讲解: hashchangebroker和statehashable的简介 hashchangebroker的用法说明 statehashable的用法说明 示例说明 1. hashchangebroker和statehashable的简介…

    jquery 2023年5月28日
    00
  • jQWidgets jqxNavBar列属性

    以下是关于 jQWidgets jqxNavBar 组件中列属性的详细攻略。 jQWidgets jqxNavBar 列属性 jQWidgets jqxNavBar 组件的列用于设置导航栏中列的数量。该属性可以是一个数字或一个字符串。 语法 $(‘#navbar’).jqxNavBar({ columns: value }); // 设置导航栏中列的数量 参…

    jquery 2023年5月12日
    00
合作推广
合作推广
分享本页
返回顶部