3

以下のコードは、カスタムボタンをクリックするとファイル入力を動的に作成し、名前がphoto []、IDが写真「x」(変数としてx)のファイル入力を生成します。コードは、全能のIEを除くすべてのブラウザーで正常に機能しています。IEでは、カスタムアップロードボタンをクリックしてファイルを追加できます。フォームを送信すると、ファイル入力がクリアされます。フォームを送信しますが、ファイル入力は空白になります。しかし、それは他のブラウザでうまく機能します。

これはバグですか?またはセキュリティのこと?もしそうなら、どうすればこの問題を解決できますか?

var x = 0;
addFile = function(addFileButton) {
    var form = document.getElementById('form');
    var box = document.createElement('input');
    box.type = 'file';
    box.name = 'photo[]';
    box.id = 'photo' + x;
    box.style.cssText = 'position:absolute; top:-200px;';
    box.onchange = function() {
        checkFileDup(this.value, x - 1);
    };
    form.appendChild(box);
    jQuery("#photo" + x).trigger('click');
    x++;
}
4

1 に答える 1

5

これは IE の問題です。javascript で作成された input[type=file] は、フォームから送信できません。

私の解決策は、ページに非表示の input[type=file] 要素のバンドルを作成し、必要に応じてそれらを表示することです。

于 2012-07-26T07:43:22.373 に答える