在firefox下使用js清空file控件的value非常简单, 即:obj.value=""; 就可以了,但在ie下,由于出于安全等方面考虑,file的value被设为了只读,所以js对其不能直接地控制,因此我们只能使用一些变通的方法来解决,网上对此也有好些方法,在此我谈谈自己认为最好的几种。
下面以上传文件格式限制(只对扩展名判断)这一实例来说明。
1、file控件由HTML生成
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script>
function CheckUpLoadFile(obj) {
DenyExt = "exe|cmd|jsp|php|asp|aspx|html|htm";
var FileExt = "";
FileExt = obj.value.substr(obj.value.lastIndexOf(".") + 1).toLowerCase();
if (DenyExt.indexOf(FileExt) != -1) {
alert("You can't upload the file of the types:" + DenyExt);
if (!window.addEventListener) {
//IE 关键代码在这里!!!
//方法一(此方法最佳!):
obj.outerHTML+='';
//方法二:
// var newObj= obj.cloneNode(true);
// newObj.value=''; // 设置新控件value为空
// obj.parentNode.replaceChild(newObj, obj);
} else {
//非IE
obj.value = "";
return false;
}
}
}
</script>
<title>无标题文档</title>
</head>
<body>
<span id="attachments_span">
<input type="file" name="myfile" onchange="CheckUpLoadFile(this);">
</span>
</body>
</html>
2、file控件由JS动态生成
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script>
function addUploadField(name, parentId) {
var f = document.createElement("input");
f.type = "file";
f.name = name;
if (window.addEventListener) { // Mozilla, Netscape, Firefox
f.addEventListener("change", function() {
CheckUpLoadFile(f, parentId);
}, false);
} else { // IE
f.attachEvent('onchange', function() {
CheckUpLoadFile(f, parentId);
});
}
f.size = 30;
p = document.getElementById(parentId);
p.appendChild(document.createElement("br"));
p.appendChild(f);
}
function CheckUpLoadFile(obj) {
DenyExt = "exe|cmd|jsp|php|asp|aspx|html|htm";
if (obj.value == "") {
return false;
}
var FileExt = "";
FileExt = obj.value.substr(obj.value.lastIndexOf(".") + 1).toLowerCase();
if (DenyExt.indexOf(FileExt) != -1) {
alert("You can't upload the file of the types:" + DenyExt);
if (!window.addEventListener) {
//IE 关键代码在这里!!!
obj.select();
document.execCommand('Delete');
obj.blur();
//obj.outerHTML+=''; 此方法虽然很安全,但可惜在此不能使用
return false;
} else {
//非IE
obj.value = "";
return false;
}
}
}
</script>
<title>无标题文档</title>
</head>
<body>
<span id="attachments_span">
<input type="button" name="add" onclick="addUploadField('myFile' ,'attachments_span');" value="Add" />
</span>
</body>
</html>
file.select();
document.execCommand('Delete');
其他的方法会或多或少的引发一些其他的副作用!
比如:重写innerHTML方法,会引起,再此file域上的事件失效!
调用activex控件会遇到安全性问题!
我写的这个方法最简单,最好用!
分享到:
相关推荐
在WinForm里面有时候需要清空自己输入内容或是选择的选项,以便重新操作流程,那么一般你是怎么清空界面各个控件值的呢?如果窗体里面控件,尤其是TextBox控件比较多的时候,代码里面是不是要设置每个控件的Text属性...
C# 清空界面控件值技巧是指在 WinForm 应用程序中,清空界面控件值的方法。这种技巧可以重用,不需要每个窗体都编写枯燥、无聊的代码。下面我们将详细介绍这种技巧。 清空界面控件值的需求 在 WinForm 应用程序中...
本篇文章介绍了几种用JavaScript清空File控件的路径值的方法,并分析了这些方法的适用场景和浏览器兼容性。 首先,一种常见的方法是创建一个新的form元素,把File控件移动到这个新form中,然后调用reset方法。由于...
例如,在上述案例中,为了获取B*单元格的值,可以在JavaScript中使用`contentPane.curLGP.selectTDCell("A2")`方法,这条语句的作用是强制让焦点跳转到A*单元格。这样一来,原先在B*单元格的数据立即刷新,并且可以...
在网页开发中,File输入控件(`<input type="file">`)是用户选择本地文件的一种常见方式...总的来说,尽管JavaScript无法直接操作File控件的值,但我们可以通过巧妙的DOM操作来达到类似的效果,以满足特定的界面需求。
在项目中使用这个自定义控件时,只需包含相应的头文件,并实例化`MyDateEdit`类,就可以享受到清空日期的功能了。 总结来说,通过自定义Qt的QCalendarWidget,我们可以扩展其功能,实现清空日期的能力。这包括创建...
本文将详细介绍如何在ASP.NET应用程序中有效地清空`FileUpload`控件的内容,并探讨几种不同的实现方式。 #### 1. 通过JavaScript创建临时表单重置法 这种方法的核心思想是:通过JavaScript动态创建一个包含`...
js 实现 上传控件内容清空! 值得下载看看!资源免费,大家分享!!
`ClearValue`类提供了一种简单有效的方式来清空和重置WinForms应用程序中的控件,极大地简化了开发者的工作量,并提高了代码的可维护性。通过合理地使用此类,可以使应用程序更加健壮和用户友好。
FineReport支持使用JavaScript脚本来处理各种事件,这些事件包括但不限于控件值变化、页面加载、按钮点击等。通过在相应的事件中嵌入JS代码,可以实现控件间的动态交互。在本例中,用到了“编辑后事件”,这是一个在...
详解Access 数据库控件清空的实例
在HTML和JavaScript编程中,`<select>`元素用于创建下拉列表,经常需要进行动态操作,比如添加、删除、修改选项,以及选中和清空选中的值。本篇文章将探讨如何通过JavaScript来实现这些功能,并判断控件是否存在。...
实例QT程序 —— QTableWidget 表格清空带控件的单元格 编译可以直接运行。 运行环境WIN10 Qt5.9.7 。 资源为源码压缩包: TestTableFuncDemo01.rar 相关文章链接如下: ...
在进行Web开发的过程中,经常会遇到需要通过JavaScript清空`<input type="file">`上传控件中的文件选择值的需求。然而,根据HTML标准,`<input type="file">`控件的值是不允许通过JavaScript直接进行修改的。原因...
当页面内有许多控件,我们在需要清空其值的时候,一个个清空未免太麻烦。于是写了这么一个方法,可以自定义清空控件的类型,灵活应对业务需求。 代码如下: /// 重置方法控件类型枚举</summary> /// 求知域...
- 若要改变这些控件的值,同样使用`.attr()`方法,但传递一个字符串作为参数。例如,设置`txt`文本框的值为"1111",代码为:`$("#txt").attr("value", "1111")`。 3. **获取和设置radio值**: - 对于`...
本文实例讲述了javascript清空table表格的方法。分享给大家供大家参考。具体如下: 1. 通常方法 循环table的rows,然后一个一个删除。 这个方法是通常的方法,可行,但是效率不好。 2. 另一个方法 var artTable = ...
js 操作 select 控件大全是 JavaScript 中对 select 控件的各种操作的集合,包括新增、修改、删除、选中、清空、判断存在等多种操作。下面将对这些操作进行详细的介绍和讲解。 一、 判断 select 选项中是否存在 ...