使用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日

相关文章

  • jQuery jQuery.fx.off 属性

    jQuery是一款广泛使用的JavaScript库,为JavaScript程序员提供了便捷的工具,使得处理HTML文档变得更加容易。为了进一步提高程序员的开发效率,jQuery提供了一系列的属性、方法和事件等功能。其中,jQuery.fx.off属性是jQuery中的一个属性,用于控制全局动画效果的开关。 一、jQuery.fx.off属性的定义及作用 jQ…

    jquery 2023年5月12日
    00
  • jQWidgets jqxGrid groupable属性

    以下是关于“jQWidgets jqxGrid groupable属性”的完整攻略,包含两个示例说明: 属性简介 jqxGrid件的 groupable 属性用于指定是否允许对 jqxGrid 控件进行分组。该属性的默认值为 false,表示允许分组。当该属性设置为 true 时,jqxGrid 控件将允许对数据进行分组。属性的语法如: $("#j…

    jquery 2023年5月10日
    00
  • Json实现异步请求提交评论无需跳转其他页面

    实现异步提交评论的方式有多种,其中一种比较常用的方式是通过Json实现。下面,我将为您介绍实现的详细步骤。 1.前端页面代码 在前端页面中,需要通过JavaScript代码来实现异步提交评论。通常,会采用jQuery等JavaScript库来方便地进行DOM操作和Ajax请求。 在评论表单中,需要添加一个提交按钮,并定义其click事件处理函数,如下所示: …

    jquery 2023年5月28日
    00
  • jquery中用函数来设置css样式

    要用jQuery设置CSS样式,可以使用.css()方法,该方法接受一个CSS属性和属性值的键值对作为参数。有两种方法可以设置CSS属性值: 直接传递CSS属性和属性值作为参数: $(element).css(‘color’, ‘red’); 使用一个对象来设置多个CSS属性: $(element).css({ ‘color’: ‘red’, ‘font-s…

    jquery 2023年5月27日
    00
  • jQWidgets jqxMaskedInput高度属性

    jQWidgets jqxMaskedInput高度属性详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包。jqxMaskedInput是其中之一。本文将详细介绍jqMaskedInput的height属性,包括用法、语法和示例。 height属性的语法 jqxMaskedInput的height属性用于设置输入框的高度。基…

    jquery 2023年5月10日
    00
  • JQuery ZTree使用方法详解

    JQuery ZTree使用方法详解 1. 引入ZTree库文件 首先需要在网页中引入 jquery.js 和 ztree 的 css 和 js 文件。 <!–引入JQuery文件–> <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"&g…

    jquery 2023年5月27日
    00
  • jQuery UI Autocomplete destroy() 方法

    jQuery UI 的 Autocomplete 组件提供了一个 destroy() 方法,该方法用于销毁 Autocomplete 组件及其相关事件和数据。在本教程中,我们将详细介绍 Autocomplete 的 destroy()的使用方法。 destroy() 方法基本语法如下: $( ".selector" ).autocompl…

    jquery 2023年5月11日
    00
  • jQuery 如何对选项元素按字母顺序排序

    要对选项元素按字母顺序排序,可以使用jQuery的.sort()方法和.appendTo()方法。以下是详细的攻略: HTML结构 首先,需要在HTML中创建一个选择框,并添加一些选项。以下是一个示例: <select id="mySelect"> <option value="c">C<…

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