JS转换时间
 function renderTime(data) {
var da = eval('new ' + data.replace('/', '', 'g').replace('/', '', 'g'));
return da.getFullYear() + "/" + da.getMonth() + "/" + da.getDay() + "/" + da.getHours() + ":" + da.getSeconds() + ":" + da.getMinutes();
}

JS转换Input file为图片路径

function getObjectURL(file) {
var url = null;
if (window.createObjectURL != undefined) { // basic
url = window.createObjectURL(file);
} else if (window.URL != undefined) { // mozilla(firefox)
url = window.URL.createObjectURL(file);
} else if (window.webkitURL != undefined) { // webkit or chrome
url = window.webkitURL.createObjectURL(file);
}
Savefiles[url] = file;
return url;
}

Js控制表单的上传时效

function SubmitFrom()
{
var Backinfo = new Array();
var m = ;
for( var n in Savefiles)
{
if (Savefiles[n] != null)
{
m++;
var formData = new FormData();
formData.append('file', Savefiles[n]);
var oReq = new XMLHttpRequest();
oReq.open("POST", "/WorkOrder/ImageUpload", false);
oReq.onload = function (oEvent) {
if (oReq.readyState == ) {
if (oReq.status == || oReq.status == ) {
var result = oReq.responseText;
if(result=="OK")
{
Backinfo[m] = "OK";
$("#ImageDiv").text("第"+m+"张图片已上传");
} }
}
};
oReq.send(formData);
}
if(Backinfo[m]=="OK")
{
Savefiles[n] == null;
}
}
for (var i = ; i < Backinfo.length; i++)
{ if (Backinfo[i]!="OK" )
{
if(confirm("第"+i+"张图片添加失败是否继续上传"))
{
$('#ImgForm').submit();
}
else
{
return;
}
}
}
var file = $("#imgFlie");
file.after(file.clone().val(""));
file.remove();
$('#ImgForm').submit();
$('#button').attr("disabled", "disabled");
$('#button').attr("value", "已提交修改");
$('#button').css("color","red");
}

JS 转换Input file 为图片路径(通过fileRead)

function showPicture(files) {
for (var i = 0; i < files.length; i++) {
var file = files[i];
if (!/image\/\w+/.test(file.type)) {
return false;
}
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function (e) {
var img = new Image();
img.src = this.result;
img.onload = function () {
var size = img.width + 'x' + img.height;
$("#ImageDiv").append('<div>' +
'<a href=' +
'"' + img.src + '"' +
'data-size=' +
'"' + size + '"' +
'>' +
'<img class="WorkOrderimageNew" style="height:40px;width:40px;" src=' +
'"' + img.src + '"' +
'>' +
'</a>' +
'</div>'
)
}
}
}
}

JQ注册input change事件(因JQ版本不同注册的关键字不同)

$("#imgFlie").live("change", function () {
var data = this.files;
$(this).clone().replaceAll(file = this); //每次选中都保存旧元素,并使用新的控件替换
$.each(data, function (key, value) {
var objUrl = getObjectURL(value);
if (objUrl) {
var img = new Image();
img.src = objUrl;
img.onload = function () {
var size = img.width + 'x' + img.height;
$("#ImageDiv").append('<figure><div>' +
'<a href=' +
'"' + objUrl + '"' +
'data-size=' +
'"' + size + '"' +
'>' +
'<img class="WorkOrderimageNew" style="height:40px;width:40px;" src=' +
'"' + img.src + '"' +
'>' +
'</a>' +
'</div>' +
' </figure>'
)
};
}
});
});

JS循环遍历删除动态生成的节点(只做参考)

function deleteNode(imagePath)
{
var Div=document.getElementById("ImageDiv");
var figures = Div.childNodes;
var cycle = false;
var n = undefined;
for (var f = figures.length - 1; f >= 0; f--) {
if (cycle == true&&n!=undefined)
{
Div.removeChild(figures[n])
deleteArray(imagePath);
break;
}
if (figures[f].nodeName == "FIGURE") {
Divs = figures[f].childNodes;
for (var d = Divs.length - 1; d >= 0; d--) {
if (Divs[d].nodeName == "DIV") {
aNodes = Divs[d].childNodes;
for (var a = aNodes.length - 1; a >= 0; a--) {
console.log("A:" + aNodes[a].nodeName);
if (aNodes[a].nodeName == "A") {
imgNodes = aNodes[a].childNodes[0];
if (imgNodes.src == imagePath) {
cycle = true;
n = f;
break;
}
}
} }
}
}
}
}

  

总结:

1,表单中input file 提交的文件在部分浏览器中可以获取文件名称进而可以判断是否重复选择同一文件,而手机端获取到的是虚拟的就算是选择相同的文件也会生成不同的虚拟文件所以不能判断所选文件是否重复,类似于发说说上传图片一样同一张图片可以一次上传多个,转换文件为图片Url通过FileReader和createObjectURL,

2,对于重复选择input file 不能触发change的事件解决办法参考:http://www.cnblogs.com/axl234/p/3897399.html

3,对于选择的图片让其显示可以给input注册change事件 JS    <input type="file" name="fileData" id="imgFlie"  onchange="showPicture()" multiple />

Jq $("#imgFlie").live("change", function () { var files=this.files}

JS 更改表单的提交时间和Input file的样式的更多相关文章

  1. DEDE自定义表单显示提交时间|添加提交时间,获取ip的方法

    前提是后台自定义表单字段一定要有  “时间”,这里的acca_time <div class="tit">*咨询内容:</div> <div clas ...

  2. 使用js控制表单重复提交(1加锁,2事件方式,3 EasyUI中解决表单重复提交)

    方法一. var flag = true; $(function() { $("#interested").click(function() { beInterested(); } ...

  3. 使用JS对form的内容验证失败后阻止提交 &&js校验表单后提交表单的三种方法总结

    1.form的两个事件 submit,提交表单,如果直接调用该函数,则直接提交表单 onSubmit,提交按钮点击时先触发,然后触发submit事件.如果不加控制的话,默认返回true,因此表单总能提 ...

  4. js防止表单重复提交的两种方法

    第一种:用flag标识,下面的代码设置checkSubmitFlg标志: 复制代码代码如下: <script language=""javascript"" ...

  5. js学习之道:js防止表单重复提交

    第一种:用flag标识,下面的代码设置checkSubmitFlg标志: <script language="”javascript”"> var checkSubmi ...

  6. jquery.form.js+jquery.validation.js实现表单校验和提交

      一.jquery引用 主要用到3个js: jquery.js jquery.form.js jquery.validation.js 另外,为了校验结果提示本地化,还需要引入jquery.vali ...

  7. js防止表单重复提交

    1.表单 <form id="addForm" onsubmit="getElementById('submitInput').disabled=true;retu ...

  8. JS 防止表单重复提交的方法

    第一种:用flag标识,下面的代码设置checkSubmitFlg标志: <script language="”JavaScript”"> var checkSubmi ...

  9. JS/Jquery 表单方式提交总结

    1. submit提交 (1). submit 按钮式提交 缺点:在提交前不可修改提交的form表单数据 // 1. html <form method="post" act ...

随机推荐

  1. Python sql数据的增删改查简单操作

    1.insert import mysql.connector import os import codecs #设置数据库用户名和密码 user='root';#用户名 pwd='root';#密码 ...

  2. Python学习入门基础教程(learning Python)--5 Python文件处理

    本节主要讨论Python下的文件操作技术. 首先,要明白为何要学习或者说关系文件操作这件事?其实道理很简单,Python程序运行时,数据是存放在RAM里的,当Python程序运行结束后数据从RAM被清 ...

  3. H264 编码详解

    H264 编码详解(收集转载) (1)       x264_param_default( x264_param_t *param ) 作用: 对编码器进行参数设定 cqm:量化表相关信息 csp: ...

  4. 【UNIX网络编程(二)】基本TCP套接字编程函数

    基于TCP客户/server程序的套接字函数图例如以下: 运行网络I/O.一个进程必须做的第一件事就是调用socket函数.指定期望的通信协议类型. #include <sys/socket.h ...

  5. java中substring的使用方法

    java中substring的使用方法 str=str.substring(int beginIndex);截取掉str从首字母起长度为beginIndex的字符串,将剩余字符串赋值给str: str ...

  6. 使用OAuth2.0访问豆瓣API

    如何计算某个用户的access_token过期时间?开发者可以通过两种方式计算:用户授权时,oauth2/access_token接口返回的expires_in值就是access_token的生命周期 ...

  7. JQuery中html()方法的注意事项

    .html方法当不传参数时用来获取元素的html内容, return this[0] && this[0].nodeType === 1 ? this[0].innerHTML.rep ...

  8. myeclipse中自己手动配置maven

    第一步,配置myeclipse的jdk,因为myeclipse默认的是运行在jre之上,而maven是在jdk之上 第二步,配置maven:

  9. HTML2列表表单框架

    HTML——Hyper Text Markup Language <html>,<head>,<body> 一.基本标签: (一)格式标签:——模型:word工具栏 ...

  10. jsp中包含JAVA代码

    在JSP中大部分都是由脚本小程序组成,所谓的脚本小程序就是里面直接包含了JAVA代码. 在JSP中Scriptlet一共分为三种:        · <%%>:定义局部变量,编写语句    ...