我有一个包含多个必填字段(姓名,电话号码等)的表单以及用于选择要提交的文件的字段。
非常感谢!
答案 0 :(得分:0)
这是一个简洁的功能,您可以使用javascript动态预览图像,不上传。我相信这是跨浏览器,但我无法100%确认。我很久以前就得到了这段代码,它最初并不是由我编写的,但是我已经对它进行了一些修改以满足我的需求,其中包括jQuery。如果你不在你的应用程序中使用jQuery,那么你将不得不改变一些事情。无论如何这里是功能:
var loadImageFile = (function () {
if (window.FileReader) {
var oPreviewImg = null, oFReader = new window.FileReader(),
rFilter = /^(?:image\/bmp|image\/cis\-cod|image\/gif|image\/ief|image\/jpeg|image\/jpeg|image\/jpeg|image\/pipeg|image\/png|image\/svg\+xml|image\/tiff|image\/x\-cmu\-raster|image\/x\-cmx|image\/x\-icon|image\/x\-portable\-anymap|image\/x\-portable\-bitmap|image\/x\-portable\-graymap|image\/x\-portable\-pixmap|image\/x\-rgb|image\/x\-xbitmap|image\/x\-xpixmap|image\/x\-xwindowdump)$/i;
var curImgPreview, curInput;
oFReader.onload = function (oFREvent) {
var tempImg = new Image();
tempImg.onload = function(){
curImgPreview.attr('src',oFREvent.target.result);
}
tempImg.src = oFREvent.target.result;
};
return function (inputOBJ, outputOBJ) {
var aFiles = inputOBJ.files;
curInput = $(inputOBJ);
curImgPreview = outputOBJ;
if (aFiles.length === 0) { return; }
if (!rFilter.test(aFiles[0].type)) { Alert("Please select a valid image file."); return; }
oFReader.readAsDataURL(aFiles[0]);
}
}
if (navigator.appName === "Microsoft Internet Explorer") {
return function () {
otuputOBJ.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = inputOBJ.value;
}
}
})();
然后在你输入的文件类型中添加
<input onchange='loadImageFile(this,$(HTMLimgObject))'/>
第二个参数是你要在中预览图像文件的img对象。
希望一切顺利,
祝你好运!