在做项目时,Javascript 取消圖片效果時發現的一個<input type=”file”>無法動態改變value的怪問題,程式大致如下:
<script>
function reset(){
obj = document.getElementById(’upload_img’);
obj.value = ”;
}
</script>
<form>
<input type=”file” name=”upload_img” id=”upload_img” value=”瀏覽”>
<input type=”botton” onclick=”reset()”>
</form>
這段程式碼的目的只有一個,就是希望當按下取消圖片的時候,它可以把圖片回歸到預設的無圖片效果,並自動把使用者瀏覽輸入框當中的檔案路徑給清掉,變成空白。
奇怪的是,明明alert( obj.value)會出現值,但是卻無法成功的將 obj.value 指定為空值,起碼 IE 與 Opera 不能正常運作,這真的是讓我心中感到頗鳥的,可是開另外一個檔案測試,打簡單的程式碼來debug,又發現可以正常運作,ㄚ是在衝啥小啦~
找了很久,下面這是解決的方法:
<script>
function reset(){
obj = document.getElementById(’upload_img’);
obj.value = ”; // 這行是留給FF用的,因為下面這一行FF不鳥( This is for FireFox )
obj.outerHTML = ‘<input type=”file” name=”upload_img” id=”upload_img” value=”瀏覽”>’; // 給IE等其他瀏覽器
}
</script>
至於為什麼會產生這樣的問題,其實是因為基於安全考量,所以檔案上傳物件的值被設定成唯讀,因此無法透過Javascript來更改 input file的值,所以如果真的想要製造這種清空的效果,就只能選擇用outerHTML的方式再把html碼重新產生一次。
嗯,果然是安全與方便難兩全啊~
分享到:
相关推荐
网页文件上传控件,支持4G以上超大文件传输,随时停止,支持断点续传功能,支持用户自制界面。 与您的网页系统进行无缝整合,使您的系统可自如地上传文件,并能及时获取与上传文件相关的各种信息。控件提供各种...
这个案例是 html5的input file控件将文件上传到后台。
html5文件上传组件美化特效是一款能够完成单文件和多文件的上传,支持文件的拖拽,支持不同的文件格式校验,支持缩略图和图标等。
这是一个隐藏 html file 控件上传图标文件的示例,功能齐全,包括: 1. 隐藏 file 控件 2. 上传文件不刷新整个页面 3. 上传成功后后台调用前台的js函数,更新 img 中的src,实现用上传图标文件 更新 img 中图片的...
NULL 博文链接:https://weistar.iteye.com/blog/2206977
最近在使用画布处理图像像素时用到了file上传控件,发现了file上传控件的两个兼容性问题。一个是file上传控件在火狐下无法通过css改变width,另一个是file上传控件在不同的浏览器下的外观和行为都不一样。 下面是...
jQuery File Upload 是一个 jQuery 图片上传组件,支持多文件上传、取消、删除,上传前缩略图预览、列表显示图片大小,支持上传进度条显示;支持各种动态语言开发的服务器端。 1、多文件上传: 允许一次选择多个文件...
json = "{\"statusCode\":\"300\",\"message\":\"上传的文件超过了3000M,请重新选择\",\"navTabId\":\"nav6\",\"rel\":\"\",\"callbackType\":\"\",\"forwardUrl\":\"\"}"; return json; } } } } catch ...
本文介绍了html5中将图片的绝对路径转换成文件对象,分享给大家,具体如下: 将图片的绝对路径转换成...我们先来看一个简单的demo,看下file文件对象有哪些属性。如下代码: <!DOCTYPE html> <html> <hea
兼容IE6+的文件上传控件plupload工具包,支持htm5的浏览器上能够进行拖拽文件上传,不支持的html5的同样支持上传功能,兼容谷歌、火狐,iE6,iE7,iE8,IE9,iE10等
关于页面多文件上传的控件 以及后台处理 关于页面多文件上传的控件 以及后台处理
无组件ASP文件上传源代码 记得在建立一个文件夹"updata" saveannounce_upload.asp 上传页 ------------------------------------ <html> <head> <style type="text/css"> body {font-size:9pt;} input {...
lastModifiedDate 为上传文件的最后修改时间 xhr.setRequestHeader("Content-Type", "multipart/form-data"); xhr.setRequestHeader("X-File-Name", file.name); xhr.setRequestHeader("X-File-Size", file.size); ...
'vue-文件上传组件 一个简单的 Vue.js 文件上传组件。为 XHR 上传进度发出事件以获得漂亮的进度条。 在查看此 repo时,我想到了最初的想法。我知道我想要一个带有上传进度的好组件,所以我从那个库中复制了一些代码...
html修改FileUpload控件的浏览按钮的文字改为自定义
html file控件选择文件后立即预览 js实现 JS实现图片上传前先图片预览功能
网上可以找到的 AngularJS 的文件上传控件有两个: angular-file-upload:https://github.com/nervgh/angular-file-upload ng-file-upload:https://github.com/danialfarid/ng-file-upload 这两个非常类似,连js...
asp.net多文件上传使用html控件的File控件,在form中就需要加入【 enctype=”multipart/form-data”】。 up3.aspx文件代码 代码如下: <%@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”up3....
先$_files[表单上传控制name名称] 获取表单上传控件的内容 再move_uploaded_file(); 函数,移动上传的文件,到你的网站目录. 再echo '<img src='' />' 显示你上传的文件. $img1=uploadimg(idcard1); echo $img1; ...
附件是ext上传文件的控件使用实例,下载附件后直接打开附件中的html页面,点击页面中的上传按钮就可以看到上传文件的对话框