`
zhangmingji
  • 浏览: 70752 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

js清空文件选择框的内容

阅读更多

     最近在给别人做一个网站,后台要求只能上传flv格式的文件,然后在前台播放。在jsp页面中想用js控制上传文件的类型。下面的代码是js控制上传格式的demo,写在这里作为个人总结。

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE>清除文件选择框中的内容</TITLE>
  <script type="text/javascript">
	function checkMedia(){
		
	var media = document.getElementById("file").value;
		
	var mediaext = media.substring(media.lastIndexOf("."),media.length);
	mediaext = mediaext.toLowerCase();
	if(mediaext!='.flv'){
		alert("系统不支持的文件格式!\n请选择flv文件。");
			
		 if (document.getElementById("file").outerHTML) {
	            		 document.getElementById("file").outerHTML = document.getElementById("file").outerHTML;
	         	} else { 
	             		document.getElementById("file").value = "";
	         	}

			document.getElementById("file").focus();
	   	}
   
	}
	function check(){
		var fileName = document.getElementById("file");
		
		if(fileName.value==""){
			alert("请选择视频文件!");
			return false;
		}
		return true;
	}
  </script>
 </HEAD>

 <BODY>
  <p>上传视频</p>
  <form onsubmit="return check()">
	<input type="file" name="file" id="file" onchange="checkMedia()" />
	<input type="submit" value="提交" />
  </form>
 </BODY>
</HTML>

 

清空的原因很简单,就一句话:

document.getElementById("file").outerHTML = document.getElementById("file").outerHTML;

如果没有选文件,即file是空的 document.getElementById("file").outerHTML的结果是 :

"<input type=“file” name="file" id=“file” />"

document.getElementById("file").outerHTML = document.getElementById("file").outerHTML;

这个很好理解,自己付给自己,最后还是自己。如果file有值了,比如D:\ebook\test.txt 那么document.getElementById("file").outerHTML的值为:

<input type="file" name="file" id="file" value="D:\ebook\test.txt"/>

这时

document.getElementById("file").outerHTML = document.getElementById("file").outerHTML;

后 document.getElementById("file")也清空

这是因为file控件是只读的,用js给file控件赋值是没用的。

如果我们将上面代码中的:

<input type="file" name="file" id="file" onchange="checkMedia()" />
换成:

<input type="file" name="file" id="file" value="D:\ebook\test.txt" onchange="checkMedia()" />

显示给我们的还是一个没有值的file框

 

比如:

<html>

<input  type="file" value="D:\ebook\test.txt"/>

</html>

 

也是一个没有值的文件选择框。

分享到:
评论
4 楼 seawh411 2013-10-10  
谢谢了,找了好久...
3 楼 邦者无敌 2013-01-17  
document.getElementById("file").outerHTML = document.getElementById("file").outerHTML
实际上这里并不能说是只读,如果是只读,那么红色部分为什么能够被赋值呢。如果赋值为"",那么整个控件都变为空,消失掉。
你alert这个量document.getElementById("file").outerHTML的时候可以看到它的全部;但是你把它作为变量给赋值的时候,它就是最基本的结构,不包含value;
2 楼 zhangmingji 2010-11-25  
wjc_3306 写道
你这样删除会把 onchange事件删除掉  请问有解决办法吗?

不太明白你的意思,onchange事件没有被删除掉啊,不知道你说的onchange事件被删除掉是指哪种情况?
1 楼 wjc_3306 2010-11-24  
你这样删除会把 onchange事件删除掉  请问有解决办法吗?

相关推荐

    js实现上传文件添加和删除文件选择框

    总结,实现JavaScript文件上传、添加和删除文件选择框的关键在于理解DOM操作和处理浏览器兼容性问题。通过上述方法,我们可以创建一个在多数现代浏览器中都能正常工作的文件上传组件。然而,对于更复杂的场景,比如...

    js提示框特效js提示框特效js提示框特效js提示框特效

    4. **DOM操作**:通过JavaScript操作DOM(文档对象模型)来动态创建、修改或删除提示框元素。这使得提示框可以根据应用的状态和用户行为动态出现。 5. **事件处理**:利用`addEventListener`或`attachEvent`(IE...

    js弹提示框

    在JavaScript中,弹出提示框是常见的用户交互方式,用于显示信息、确认操作或者获取用户输入。本文将详细介绍如何在JavaScript中创建各种类型的提示框。 一、警告对话框(alert) JavaScript提供了`alert()`函数,...

    js中的jquery框架.js文件

    2. **DOM操作**:jQuery提供了丰富的API来操作DOM,如`append()`在元素内部添加内容,`remove()`删除元素,`clone()`复制元素等。 3. **事件处理**:jQuery简化了事件绑定和解绑,如`click(fn)`为元素绑定点击事件...

    js弹出窗口 + 获取上传文件全路径

    本文将深入探讨"js弹出窗口 + 获取上传文件全路径"这一主题,这两个知识点是JavaScript在交互式用户界面设计中的关键部分。 首先,让我们来讨论"js弹出窗口"。在网页开发中,弹出窗口通常用于显示警告信息、确认...

    js 弹出提示框

    在JavaScript(JS)中,弹出提示框是与用户交互的一种基本方式。这些提示框包括普通对话框、确认框和自定义对话框。在网页应用中,这些功能可以帮助开发者向用户展示信息,获取用户确认或者收集用户输入。下面将详细...

    JS+css实现仿QQ空间信息提示框

    在JavaScript和CSS的世界里,创建一个仿QQ空间信息提示框是一项常见的前端开发任务。QQ空间信息提示框的设计通常包括动态效果、自定义样式以及交互功能,使得用户在使用时能够获得更加直观和友好的体验。下面我们将...

    消息提示框 js ajax

    本文将深入探讨如何使用JavaScript(JS)和Ajax技术来创建一款类似于QQ弹窗的炫酷消息提示框。 首先,我们来了解JavaScript(JS)。JavaScript是一种轻量级的解释型编程语言,广泛应用于网页和网络应用开发。它主要...

    jquery js 效果,弹出提示框

    接下来,我们将在`js`文件中编写jQuery代码,以监听特定事件并显示提示框。假设我们要在用户点击某个按钮时触发提示: ```javascript $(document).ready(function() { $("#showNotificationButton").on("click", ...

    js的弹出框

    在压缩包中的`alertBox.js`可能是一个实现自定义弹出框功能的文件,它可能包含了使用JavaScript控制DOM元素显示和隐藏的逻辑,以及对用户交互事件的处理。为了更好地了解`alertBox.js`的内容,你需要查看源代码并...

    JS提示框美化 alert confirm wait 美化

    在提供的文件中,`index.html`很可能是包含页面结构和自定义组件HTML代码的文件,`msg.js`可能是实现这些功能的JavaScript代码。`images`文件夹可能包含了用于美化对话框的图片资源,如关闭图标、背景图片等。在`msg...

    Javascript弹出框架

    1. **基本用法**:引入`lhgdialog.js`和相应的CSS文件,然后调用`$.dialog`方法创建对话框,例如: ```javascript $.dialog({ title: '提示', content: '这是一条简单的消息', ok: function() { console.log('...

    jquery删除确认提示信息框.zip

    在这个案例中,可能是通过自定义HTML和CSS创建了一个提示框,并通过jQuery控制其显示和隐藏。 3. 事件触发:当用户尝试执行删除操作时,我们需要监听相关元素的点击事件。例如,如果删除按钮的ID是`deleteButton`,...

    JS弹出自定义菜单+对话框+提示框大全

    在本资源中,"JS弹出自定义菜单+对话框+提示框大全",主要展示了如何利用JavaScript来创建自定义的菜单、警告框、确认框和对话框,这些都是网页交互中的关键元素。 首先,`popup.js` 和 `popupclass.js` 是两个关键...

    做添加,删除,修改,查找等操作时的判断提示框

    4. **查找操作**:虽然查找操作通常不需要提示框,但在结果可能影响其他功能或者找到多个匹配项时,提示框可以帮助用户理解搜索结果并做出选择。 设计提示框时,需要遵循以下原则: - **明确性**:确保提示信息...

    jquery表格插件及JavaScript选择框

    在JavaScript中,我们可以使用DOM操作或jQuery方法来操控这些选择框,如获取或设置选中值、添加或删除选项等。结合Datatables,可以选择框来过滤表格数据,或者根据用户选择进行其他操作。 例如,创建一个下拉菜单...

    LayUI框架js文件Layer.js

    - `layer.confirm()`: 创建确认提示框,用户可选择确定或取消。 - `layer.msg()`: 创建消息提示框,通常用于短暂的提示信息。 - `layer.load()`: 显示加载层,一般在请求数据时使用。 - `layer.index`: 返回当前弹窗...

    jQuery适用于手机端的弹出提示框代码.zip

    2. **脚本文件**:一个或多个JavaScript文件,其中包含jQuery代码来实现弹出、关闭提示框的功能,以及可能的动画效果。这些脚本可能会监听特定的用户事件,如点击按钮,然后触发提示框显示。 3. **HTML模板**:用于...

    bootstrap提示框定时消失

    Bootstrap 提示框定时...通过 jQuery,我们可以添加自定义的 JavaScript 代码来实现定时关闭提示框。 首先,你需要在页面中引入 Bootstrap 和 jQuery 的库。在 HTML 文件的 `&lt;head&gt;` 标签内加入如下链接: ```html ...

Global site tag (gtag.js) - Google Analytics