<script src="/static/js/jquery.js"></script>
<script>
$("#reg-btn").click(function () {
// 1. 取到用户填写的数据
var form_data_obj = new FormData();
form_data_obj.append('username',$('#id_username').val());
form_data_obj.append('password',$('#id_password').val());
form_data_obj.append('re_password',$('#id_re_password').val());
form_data_obj.append('phone',$('#id_phone').val());
form_data_obj.append('email',$('#id_email').val());
form_data_obj.append('csrfmiddlewaretoken',$("[name= 'csrfmiddlewaretoken']").val());
form_data_obj.append('avatar',$('#avatar')[0].files[0]);
// 2. 往后端发post请求
$('#reg-btn').click(function(){
$.ajax({
url:'/reg/',
type:'post',
data:form_data_obj,
processData: false,
contentType: false,
success:function (response) {
console.log(response);
{#错误信息为1,则展示错误信息#}
if(response.code ===1){$.each(response.msg, function (k,v) {
console.log('k',k);
console.log('v',v);
$('#id_'+k).next().text(v[0]).parent().addClass('has-error')
})}
else if(response.code ===0){location.href=response.msg} }
})
})
}); // 每一个input标签获取焦点的时候,把自己下面的span标签内容清空,把父标签的has-error样式移除
$("input.form-control").focus(function () {
$(this).val('').next("span").text('').parent().removeClass('has-error');
}); // 前端页面实现头像预览
// 当用户选中文件之后,也就是头像的input标签有值时触发
$('#avatar').change(function () {
var file = this.files[0];
var fr = new FileReader();
fr.readAsDataURL(file);
fr.onload = function(){
$('#avatar-img').attr('src',fr.result) }
})

注意点:

  ajax上传文件,借助FormData对象

  同时增加两组键值对

   processData:false,  //tell jQuery not to process the data
contentType: false, //tell jQuery not to set contentType form组件上传文件

<form action="http://localhost:8081/thingsparse/addorupdthingsparse" method="post" enctype="multipart/form-data">
<input type="file" name="file" value="选择jar包"/>
<input id="submit_form" type="submit" class="btn btn-success save" value="保存"/>
</form>

注意:每条form表单参数都需要有name属性,以及form表单的enctype="multipart/form-data"。提交按钮type=‘submit’

ajax上传文件 基于jquery form表单上传文件的更多相关文章

  1. PHP 后台程序配置config文件,及form表单上传文件

    一,配置config文件 1获取config.php文件数组, 2获取form 表单提交的值 3保存更新config.php文件,代码如下: $color=$_POST['color']; $back ...

  2. django 基于form表单上传文件和基于ajax上传文件

    一.基于form表单上传文件 1.html里是有一个input type="file" 和 ‘submit’的标签 2.vies.py def fileupload(request ...

  3. 巨蟒python全栈开发django11:ajax&&form表单上传文件contentType

    回顾: 什么是异步? 可以开出一个线程,我发出请求,不用等待返回,可以做其他事情. 什么是同步? 同步就是,我发送出了一个请求,需要等待返回给我信息,我才可以操作其他事情. 局部刷新是什么? 通过jq ...

  4. JsonResponse类的使用、form表单上传文件补充、CBV和FBV、HTML的模板语法之传值与过滤器

    昨日内容回顾 Django请求生命周期 # 1.浏览器发起请求 到达Django的socket服务端(web服务网关接口) 01 wsgiref 02 uwsgi + nginx 03 WSGI协议 ...

  5. JavaScript实现form表单的多文件上传

    form表单的多文件上传,具体内容如下 formData对象可以使用一系列的键值对来模拟一个完整的表单,然后使用Ajax来发送这个表单 使用<form>表单初始化FormData对象的方式 ...

  6. 使用form表单上传文件

    在使用form表单上传文件时候,input[type='file']是必然会用的,其中有一些小坑需要避免. 1.form的 enctype="multipart/form-data" ...

  7. vue form表单上传文件

    <script src="https://cdn.staticfile.org/vue-resource/1.5.1/vue-resource.min.js">< ...

  8. jQuery Form 表单提交插件-----formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的 应用

    一.jQuery Form的其他api  1.  formSerialize 将表单序列化成查询串.这个方法将返回一个形如: name1=value1&name2=value2的字符串.是否可 ...

  9. jQuery Form 表单提交插件----Form 简介,官方文档,官方下载地址

     一.jQuery Form简介 jQuery Form插件是一个优秀的Ajax表单插件,可以非常容易地.无侵入地升级HTML表单以支持Ajax.jQuery Form有两个核心方法 -- ajaxF ...

随机推荐

  1. 简单几招助您加速 ARM 容器应用开发和测试流程

    随着5G时代的临近,低延迟网络.AI硬件算力提升.和智能化应用快速发展,一个万物智联的时代必将到来.我们需要将智能决策.实时处理能力从云延展到边缘和IoT设备端.阿里云容器服务推出了边缘容器,支持云- ...

  2. ubuntu安装verilog

    1.安装verilog sudo apt-get install verilog 2.安装gtkwave sudo apt-get install gtkwave 3.安装dinotrace(和gtk ...

  3. SSH 相关基础

    检查是否安装: sudo apt-cache policy openssh-client sudo apt-cache policy  openssh-server 也可直接用 sudo apt-ca ...

  4. AndroidStudio离线打包MUI

    1.下载5+SKD http://ask.dcloud.net.cn/article/103 2.解压到任意目录 3.导入HBuilder-Hello项目 4.在AndroidManifest.xml ...

  5. Vue.之. 动态设置按钮Disabled

    Vue.之. 动态设置按钮Disabled 按钮代码如下: 添加了一个 属性      :disabled="isAble"  ,控制:更新按钮.重置按钮 <el-form- ...

  6. [Vue CLI 3] 配置解析之 css.extract

    大家还记得我们在老版本中,对于线上环境配置中会把所有的 css 多打成一个文件: 核心是使用了插件 extract-text-webpack-plugin,方式如下: 第一步都是加载插件 const ...

  7. DELL(linux 系统里系统掉盘)(阵列Foreign)命令行里重做阵列

    故障现象 (阵列Foreign 系统下重做阵列) 例:四合一机器(DELL_XENCOMPA09) 有四个硬盘 如图 少认到一个 df  -h fdisk -l 2>/dev/null | gr ...

  8. python小练习--银行取款

    银行取款 今天练习的小程序: #!/usr/bin/env python #-*- coding:utf-8 -*- import time tag=True while tag: name=inpu ...

  9. 阿里云应用高可用 AHAS 正式商用,可一键提升云上应用可用性

    在分布式架构环境下,服务间的依赖日益复杂,可能没有人能说清单个故障对整个系统的影响,构建一个高可用的分布式系统面临着很大挑战. 7月17日,阿里云应用高可用服务AHAS 正式商用,包含架构感知.流控降 ...

  10. PLAY2.6-SCALA(三) 数据的返回与保存

    1.修改默认的Content-Type 自动设置内容类型为text/plain val textResult = Ok("Hello World!") 自动设置内容类型为appli ...