JS 更改表单的提交时间和Input file的样式
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的样式的更多相关文章
- DEDE自定义表单显示提交时间|添加提交时间,获取ip的方法
前提是后台自定义表单字段一定要有 “时间”,这里的acca_time <div class="tit">*咨询内容:</div> <div clas ...
- 使用js控制表单重复提交(1加锁,2事件方式,3 EasyUI中解决表单重复提交)
方法一. var flag = true; $(function() { $("#interested").click(function() { beInterested(); } ...
- 使用JS对form的内容验证失败后阻止提交 &&js校验表单后提交表单的三种方法总结
1.form的两个事件 submit,提交表单,如果直接调用该函数,则直接提交表单 onSubmit,提交按钮点击时先触发,然后触发submit事件.如果不加控制的话,默认返回true,因此表单总能提 ...
- js防止表单重复提交的两种方法
第一种:用flag标识,下面的代码设置checkSubmitFlg标志: 复制代码代码如下: <script language=""javascript"" ...
- js学习之道:js防止表单重复提交
第一种:用flag标识,下面的代码设置checkSubmitFlg标志: <script language="”javascript”"> var checkSubmi ...
- jquery.form.js+jquery.validation.js实现表单校验和提交
一.jquery引用 主要用到3个js: jquery.js jquery.form.js jquery.validation.js 另外,为了校验结果提示本地化,还需要引入jquery.vali ...
- js防止表单重复提交
1.表单 <form id="addForm" onsubmit="getElementById('submitInput').disabled=true;retu ...
- JS 防止表单重复提交的方法
第一种:用flag标识,下面的代码设置checkSubmitFlg标志: <script language="”JavaScript”"> var checkSubmi ...
- JS/Jquery 表单方式提交总结
1. submit提交 (1). submit 按钮式提交 缺点:在提交前不可修改提交的form表单数据 // 1. html <form method="post" act ...
随机推荐
- Hadoop CLI MiniCluster
CLI MiniCluster Use the climonicluster, users can simply start and stop a single-node hadoop cluster ...
- 第九十六题(编写strcpy 函数)
96.08 年中兴校园招聘笔试题 1.编写strcpy 函数 已知strcpy 函数的原型是 char *strcpy(char *strDest, const char *strSrc); 当中st ...
- 解决水晶报表在IIS7下的权限问题。
http://52live.blog.sohu.com/69025059.html 解决水晶报表在IIS7下的权限问题. 有些事情真是“踏破铁鞋无觅处,得来全不费功夫”!困扰了我一段时间的水晶报表在I ...
- 使用ADO.net中的链接字符串
需要引用:System.Configuration命名空间 ConfigurationManager.ConnectionStrings["sqlConnStr"].Connect ...
- Nodejs随笔(二):像可执行shell脚本一样,运行node 脚本!
在每次编写nodejs脚本的时候,只需在程序的开头加上如下代码(写过shell脚本的人应该很熟悉): #!/usr/local/bin/node 同时,修改文件权限为可执行: mesogene@mes ...
- JSP 适配手机屏幕
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scal ...
- Scala基础入门-1
首先需要Scala开发环境的搭建,网上自己找教程. 声明常量与变量 val foo = 0 // 常量 var bar = 0 // 变量 在Scala中,更加鼓励使用val来进行声明,也就是推荐使用 ...
- C#性能优化实践 资料整理
缓存(Cache)是性能优化中最常用的优化手段.适用的情况是频繁的获取一些数据,而每次获取这些数据需要的时间比较长.这时,第一次获取的时候会用正常的方法,并且在获取之后把数据缓存下来.之后就使用缓存的 ...
- 了解单位em和px的区别
这里引用的是Jorux的“95%的中国网站需要重写CSS”的文章,题目有点吓人,但是确实是现在国内网页制作方面的一些缺陷.我一直也搞不清楚px与em之间的关系和特点,看过以后确实收获很大.平时都是用p ...
- Oracle EBS-SQL (BOM-11):检查无BOM的装配件.sql
select msi.segment1, msi.description, . msi.item_type, msi.inventory_item_status_code 状态 from ...