0

这是我关于堆栈溢出的第一个问题。我的 javascript 函数有问题。

下面是我的 js 代码:

function abc(formobject){
    var ext =".txt";
         var abc=".doc,docx";
    if(abc.search(ext) < 0){
        alert("hi"); 
        formobject.file.value="";
        return false;
    }
    return true;
}

<input type="submit" id="button"  value="submit" onclick="return abc(this.form);">

在这里单击提交按钮正在调用 abc() js 函数并上传文件。它执行逻辑,如果文件的扩展名无效,它应该发出警报并清除浏览按钮的值。它发生在 mozilla 中。但是IE8 中的值没有被清除。任何人都可以帮助我吗?

文件是这里上传的谢谢

4

2 回答 2

0

我假设您的表单中只有“浏览”字段。

由于安全限制,无法访问文件输入标签的值字段。更多信息请访问http://blogs.msdn.com/b/ie/archive/2008/07/02/ie8-security-part-v-comprehensive-protection.aspx

如果您只想清除文件字段,那么您必须在文件字段之前添加一个 div 标签并清除它。

例子:-

<html>
<head>
<script type="text/javascript">
function abc(formobject){     
var ext =".txt";          
var abc=".doc,docx";     
if(abc.search(ext) < 0){         
alert("hi");          
document.getElementById('uploadFile_div').innerHTML = 
                    document.getElementById('uploadFile_div').innerHTML;

return false;     
}     
return true; 
} 


</script>
</head>
<body>
<form name="theForm">
<div id="uploadFile_div">
<INPUT NAME="file" TYPE="file">
</div>
<input type="submit" id="button"  value="submit" onclick="return abc(this.form);">

</body>
于 2012-06-15T05:59:21.937 回答
0

代替

formobject.file.value=""; 

尝试使用

formobject.reset();

希望这可以帮助。

于 2012-06-15T05:25:08.597 回答