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

// 添加小程序图片
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. Java注解 框架开发之Java注解的妙用

    原文出处: locality 注解的好处: 1.能够读懂别人写的代码,特别是框架相关的代码. 2.本来可能需要很多配置文件,需要很多逻辑才能实现的内容,就可以使用一个或者多个注解来替代,这样就使得编程 ...

  2. SVN提交文件失败:系统找不到指定路径

    完成程序代码工作后,进行SVN的文件提交.先进行项目的更新,然后在修改的文件上进行提交操作,发现SVN弹出提示信息,“系统找不到指定路径”提交失败,如下图:                       ...

  3. Linux crontab定时执行任务 命令格式与详细例子(转)

    基本格式 : * * * * * command 分 时 日 月 周 命令 第1列表示分钟1-59 每分钟用*或者 */1表示 第2列表示小时1-23(0表示0点) 第3列表示日期1-31 第4列表示 ...

  4. English trip -- Review Unit6 Time 时间

    It's at seven o'clock   整点   7点整 It's at half past seven  or  It's seven-thirty7点30 It's at seven fi ...

  5. XSD与C#Code以及XML之间的相互关心

    ------------------------------网上参考资料 C# 利用自带xsd.exe工具操作XML-如通过XML生成xsd文件:http://blog.sina.com.cn/s/b ...

  6. 20170719xlVbaAbsorbProcedure

    Sub AbsorbThisProcedure() If Application.VBE.MainWindow.Visible = False Then MsgBox "请先激活VBE编辑窗 ...

  7. Activiti的后台数据库表详解

    Activiti的后台是有数据库的支持,所有的表都以ACT_开头. 第二部分是表示表的用途的两个字母标识.用途也和服务的API对应. 1)       ACT_RE_*: 'RE'表示reposito ...

  8. 如何使用Java Enum

    简单的用法:JavaEnum简单的用法一般用于代表一组常用常量,可用来代表一类相同类型的常量值.如: 性别: public enum SexEnum { male, female; } 颜色: pub ...

  9. skill prefix neo,non input 1

    1● neo 新的     2● non 不,非,无  

  10. 北邮新生排位赛2解题报告d-e

    <> 427. 学姐逗学弟 时间限制 3000 ms 内存限制 131072 KB 题目描述 学弟们来了之后,学姐每天都非常高兴的和学弟一起玩耍.这一天,学姐想出了这样一个游戏,她画了一棵 ...