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. mongodb导出命令

    ./mongoexport -d admin -c col -o col.json 找到了 导出所有数据库的 http://www.jb51.net/article/52498.htm

  2. IHttpModule接口事件执行 获取Session 找了很多国内的都不对,从国外转过来一个测试可用的

    我的环境,asp.net4.0框架集 不多说上代码 public class MyHttpModule : IHttpModule { public void Init(HttpApplication ...

  3. hibernate 查询、二级缓存、连接池

    hibernate 查询.二级缓存.连接池 查询: 1) 主键查询 Dept dept =  (Dept) session.get(Dept.class, 12); Dept dept =  (Dep ...

  4. java PriorityBlockingQueue 基于优先级队列,的读出操作可以阻止.

    java PriorityBlockingQueue 基于优先级队列.的读出操作可以阻止. package org.rui.thread.newc; import java.util.ArrayLis ...

  5. UIPageViewController-浅析

    一.UIPageViewController概念   控件为我们提供了一种像翻书效果的一种控件.我们可以通过使用UIPageViewController控件,来完成类似图书一样的翻页控制方式.   二 ...

  6. asp.net生成缩略图、文字图片水印

    /// <summary> /// 会产生graphics异常的PixelFormat /// </summary> private static PixelFormat[] ...

  7. random background

    function roll(){ var bg = document.getElementById("loginbg"); var rnd = Math.floor(Math.ra ...

  8. C# 运算符 if

    运算符: 一.算术运算符: + - * / % ——取余运算 取余运算的应用场景: 1.奇偶数的区分. 2.把数变化到某个范围之内.——彩票生成. 3.判断能否整除.——闰年.平年. int a = ...

  9. java多线程并发例子

    public static void main(String[] args) { for(Thread t:getThreads()){ t.start(); } } public static Th ...

  10. [string]字符串中几个比较难的算法和容易搞混的题目

    一.两个难点算法 1.Manacher算法,线性时间求最长回文子串 2.KMP算法,字符串匹配问题,c语言中的strStr 二.几个题目 1.最长回文子串 方法:暴力,动态规划,中心扩展,manach ...