此为表单提交是上传截图的代码,待优化;

// 添加小程序图片
function addAvatar(obj){
var file = obj.files[0];
limit($('.avatar_box'),$(".avatar-error"),788,file);
} function addqr(obj){
var file = obj.files[0];
limit($('.ewmfile_box'),$(".qrimg-error"),788,file);
}
// 限制上传图片大小$('.ewmfile_box')
function limit(ele,errorele,limit,file){
var fileSize = file.size;
var size = fileSize / 1024;
var str;
if(limit / 1024 >= 1) {
if(limit / (1024 * 1024) >= 1) {
str = limit / (1024 * 1024) + 'GB!';
} else {
str = limit / 1024 + 'MB!';
}
} else {
str = limit + 'KB!';
}
var tips = '上传图片不能大于'+ str;
if(size > parseInt(limit)){
errorele.text(tips);
return false;
}
else{
errorele.text('');
// 编译图片base64
readAsDataURL()
function readAsDataURL(){
//检验是否为图像文件
// if(!/image\/\w+/.test(file.type)){
// alert("看清楚,这个需要图片!");
// return false;
// }
var reader = new FileReader();
//将文件以Data URL形式读入页面
reader.readAsDataURL(file);
reader.onload = function(e){
//显示文件
ele.css('display','block').html('<img src="' + this.result +'" alt="" />').siblings().css('display','none')
}
}
}
} function addscreen(obj,limit){
//限制图片大小
var file = obj.files[0];
var fileSize = file.size;
var size = fileSize / 1024;
var str;
if(limit / 1024 >= 1) {
if(limit / (1024 * 1024) >= 1) {
str = limit / (1024 * 1024) + 'GB!';
} else {
str = limit / 1024 + 'MB!';
}
} else {
str = limit + 'KB!';
}
var tips = '上传图片不能大于'+ str;
if(size > parseInt(limit)){
$(".check-screenshot-error").text(tips);
return false;
}
else{
$(".check-screenshot-error").text('');
}
//截图表单提交
$("#form1").ajaxSubmit({
// url :'/e/DoInfo/imageUp.php',
dataType:'json',
success: function(data){
$("input[type=file]").val('');
if(data.status ==1){
var sreenshot ='<div class="screenshot_box"><img src="'+data.url+'" alt=""><input type="hidden" name="screenshot[]" value="'+data.url+'"><p class="del">删除</p></div>'
$('.add-screenshot').prepend(sreenshot);
if($('.add-screenshot .screenshot_box').length >= 6){
$('.screen_add').css('display','none')
}else{
$('.screen_add').css('display','block')
}
}else{
$(".check-screenshot-error").text('上传截图失败!');
return false;
}
},
error:function(){
$(".check-screenshot-error").text('上传失败,请检查网络!');
}
});
}
// 删除上传的截图
$(".add-screenshot").delegate('.screenshot_box',"mouseenter mouseleave",function(event){
var _this = $(this)
if( event.type == "mouseenter"){
$(this).find('.del').css('display','block').click( function(){
_this.remove();
$('.screen_add.screenshot_box').css('display','block');
});
}else if(event.type == "mouseleave" ){
$(this).find('.del').css('display','none');
} });
//表单提交
function onSubmit () {
//表单验证
if($("input[name=title]").val() == ''){
$(".title-error").text('请填写小程序名字!');
return false;
}else{
$(".title-error").text('');
} if($(".avatar_box img").length == 0){
$(".avatar-error").text('请添加小程序图片!');
return false;
}
else{
$(".avatar-error").text('');
} if($(".ewmfile_box img").length == 0){
$(".qrimg-error").text('请添加小程序二维码!');
return false;
}
else{
$(".qrimg-error").text('');
} if($("#newstext").val() == ''){
$(".intro-error").text('请填写小程序介绍!');
return false;
}else{
$(".intro-error").text('');
} // if($(".add-screenshot .screenshot_box").length <= 3){
// $(".check-screenshot-error").text('请添加至少3张小程序应用截图!');
// return false;
// }
// else{
// $(".check-screenshot-error").text('');
// } if($("input[name=key]").val() == ''){
$(".key-error").text('请填写验证码');
return false;
}
else{
$(".check-screenshot-error").text('');
}
}

在上传过程中有两种上传方式,使用form表单submit提交以及使用ajax异步请求提交;

1、form表单提交:

form表单提交时,由于一般不会使用原生的表单样式,会设计新的样式,所以在上传图片事需要做的就是ajax异步请求返回图片在服务器的地址或者不使用异步请求直接将上传的图片编译处成base64然后插入;

<input type="file" name="file" class="hide" form="form1" onChange="upload(this,100,'form1',uploadPics,'name',5)" accept="image/jpg,image/jpeg,image/png" multiple="multiple"/>锚点到form1进行表单提交;

<form id="form1" action="/upload/create" method="post" enctype="multipart/form-data"></form>

2、ajax异步请求:

如果不使用form表单方式提交可以选择使用jquery-form.js参考http://malsup.com/jquery/form/插件进行异步提交

整个表单的提交方式可以参考https://www.cnblogs.com/zhuxiaojie/p/4783939.html

截图上传思想:先将截图样式写好后将截图html文本删除,待请求到图片地址后在回调中动态添加一个个截图html;

注:前端本地文件操作与上传,如通过input type=”file” 选择本地文件、通过拖拽的方式把文件拖过来、在编辑框里面复制粘贴此三种方式可以参考人人网的文章https://fed.renren.com/2017/11/25/local-file-manage-upload/

表单添加缩略图及截图js代码的更多相关文章

  1. Jquery Validate不是用submit按钮提交表单,使用a标签js代码都可以

    不多说,上代码. $("#form").validate(); $("#btn").click(function() { if($("#form&qu ...

  2. 利用input-radio和input-checkbox的表单特性可以节省很多js代码

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  3. 添加可运行的js代码

    如何在博客园的文章/随笔中添加可运行的js代码 在博客园浏览大牛们写的文章时,经常会看到在文章中混有一些可运行示例,例如司徒正美的博客中: 带有可运行示例 可以点击“运行代码” 经过一番小小的探索,掌 ...

  4. 解决chrome浏览器对于自动填充的input表单添加的默认的淡黄色背景问题 && 一般的浏览器input和button的高度不一致问题

    解决chrome浏览器对于自动填充的input表单添加的默认的淡黄色背景问题 如果我们把一个表单设置位 autofocus ,这时这个表单在获取焦点后就会产生淡黄色的背景,我们就是使用!importa ...

  5. struct2(六) 为表单添加验证

    简介 为表单添加验证 添加校验的方法: 1. first name 不能为null 2. Email address 不能为null 3. age 必须大于18岁 为了在用户提交的时候,能够校验这个表 ...

  6. jQuery表单验证插件——jquery.validate.js

    官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 一.导入js库 <script src="../j ...

  7. jQuery插件 -- 表单验证插件jquery.validate.js, jquery.metadata.js

    原文地址:http://blog.csdn.net/zzq58157383/article/details/7718352   最常使用JavaScript的场合就是表单的验证,而jQuery作为一个 ...

  8. jQuery插件 -- 表单验证插件jquery.validate.js

    最常使用JavaScript的场合就是表单的验证,而jQuery作为一个优秀的JavaScript库,也提供了一个优秀的表单验证插件----Validation.Validation是历史最悠久的jQ ...

  9. 表单验证插件jquery.validate.js

    最常使用JavaScript的场合就是表单的验证,而jQuery作为一个优秀的JavaScript库,也提供了一个优秀的表单验证插件----Validation.Validation是历史最悠久的jQ ...

随机推荐

  1. 通过IIS寄宿WCF服务

    WCF全面解析一书中的例子S104,直接将Service目录部署到iis是无法得到服务相应的,需要在项目中新建一个web项目,删除掉自动生成的所有文件之后,把Service目录下的Calculator ...

  2. Java 主要特性

    Java 有下面的一些主要特性. 面向对象 在 Java 中,所有的都是对象.正式因为 Java 基于对象模型,所以 Java 更加容易进行扩展. Java语言提供类.接口和继承等面向对象的特性,为了 ...

  3. ssh The authenticity of host '10.11.26.2 (10.11.26.2)' can't be established

    The authenticity of host '10.11.26.2 (10.11.26.2)' can't be established. ECDSA key fingerprint is SH ...

  4. 绝对干货!!css3字体图标—丰富的阿里图标库iconfont的使用详解

    在移动端Web项目开发中,我们往往需要用到一些小图标,比如搜索,返回,小菜单,小箭头等等..这如果还用切图你就OUT了.. 而这时CSS3提供的字体图标无疑是我们最好的选择,它就像字体一样,可以设置大 ...

  5. 负载均衡中使用 Redis 实现共享 Session

    最近在研究Web架构方面的知识,包括数据库读写分离,Redis缓存和队列,集群,以及负载均衡(LVS),今天就来先学习下我在负载均衡中遇到的问题,那就是session共享的问题. 一.负载均衡 负载均 ...

  6. 页面跳转 Server.Transfer和 Response.Redirect的区别

    1.Server.Transfer 用于把处理的控制权从一个页面转移到另一个页面,在转移的工程中没有离开服务器内部控件(如request,session等)保存的信息不变.因此你能从a页面跳转到b页面 ...

  7. xhost + 的作用

    xhost 是用来控制X server访问权限的. 通常当你从hostA登陆到hostB上运行hostB上的应用程序时, 做为应用程序来说,hostA是client,但是作为图形来说, 是在hostA ...

  8. 用apscheduler处理调度任务,定时任务,重复任务

    from apscheduler.schedulers.blocking import BlockingScheduler from apscheduler.triggers.cron import ...

  9. C语言define 可以提高程序运行的速度

    define的优缺点 优点 提高了程序的可读性,同时也方便进行修改: 提高程序的运行效率:使用带参的宏定义既可完成函数调用的功能,又能避免函数的出栈与入栈操作,减少系统开销,提高运行效率: 3.宏是由 ...

  10. java 缓冲区大小与下载速度的关系

    1.对于缓冲区空间的设定,要根据具体情况来定,如果存在大量的长信息(比如文件传输),将缓冲区定义的大些,可能更好的利用网络资源,如果更多的是短信息(比如聊天消息),使用小的缓冲区可能更好些,这样刷新的 ...