javascript浏览器兼容性问题

时间:2012-06-15 05:09:08

标签: javascript javascript-events

这是关于堆栈溢出的第一个问题。我的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中没有清除这些值。任何人都可以帮我解决这个问题吗?

文件是在这里上传的 谢谢

2 个答案:

答案 0 :(得分:0)

而不是

formobject.file.value=""; 

尝试使用

formobject.reset();

希望这有帮助。

答案 1 :(得分: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>