0

複数のファイルをアップロードできるフォームを Web ページに追加しました。入力を追加しました<input type="file" name="photo_upload[]" id="photo_upload" multiple="multiple" />

ブラウザが複数ファイル機能をサポートしていない場合にのみ表示される警告を追加しようとしました。私はこのコードを試しました:

<script type="text/javascript">
var testrange=document.createElement("input")
testrange.setAttribute("multiple", "multiple")
if (testrange.multiple=="multiple"){
    document.getElementById('multiple_warning').style.display = 'none';
}
</script>
<div id="multiple_warning" style="background:#FFFF99; border:dashed; border-width:thin;">Sorry, but your browser does not support the multiple file upload feature.<br />
If you have more than one photo to send us, please send it after you recieved your comformation email.</div>

ただし、常に「multiple_warning」が表示されます。これを適切に動作させるにはどうすればよいですか?

4

3 に答える 3

1

Modernizr を使用して、特定の属性をテストできます。そのオープン ソース、クロス ブラウザーの html 5 検出ライブラリ

if(Modernizr.input[attribute])){
    alert("Attribute exists");
}
else{
    //error handling
}

ここを参照してください http://modernizr.com/docs/#input

于 2012-07-10T06:05:30.177 に答える
0

あなたが持っているJavaScriptの代わりにこれを使用してください:

var testrange = document.createElement("input")
if ("multiple" in testrange) {
    document.getElementById("multiple_warning").style.display = "none";
}

多くの機能検出を行っている場合は、独自のテストを作成するのではなく、Modernizrを使用してこれらの種類をテストすることを検討してください。多くのコーナーケースを考慮し、頭痛の種を大幅に軽減します。

于 2012-07-10T06:07:23.100 に答える
0

コンソールをチェックして、テストが常に失敗する理由を確認してください;)

testrange.setAttribute("multiple", "multiple")
console.log(testrange.multiple);

このスニペットでこの機能を確認できます

if (!("multiple" in testrange)) {
    alert("no multiple upload supported");
}
于 2012-07-10T06:02:32.790 に答える