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

それ以外の

formobject.file.value=""; 

使ってみてください

formobject.reset();

お役に立てれば。

于 2012-06-15T05:25:08.597 に答える
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 に答える