Использование .val () для проверки значений формы для файла загрузки нескольких файлов - PullRequest
0 голосов
/ 06 марта 2012

У меня есть форма загрузки нескольких файлов, и я хочу одновременно отображать выбранные имена файлов, у меня есть эта форма:

   <form  id="upload" enctype="multipart/form-data" action="upload_file.php" method="post">
   <input id="choosefile" type="file" name="file[]" multiple/>
   <input type="submit" />
   </form>

, и я хочу распечатать имена файлов, которые являютсябудучи загруженным с помощью этого jQuery-скрипта

   <script>
     $("#choosefile").keyup(function () {
     var value = $(this).val();
     $("p").text(value);
     }).keyup();
   </script>

но он ничего не делает, помощь будет принята.

Ответы [ 3 ]

1 голос
/ 06 марта 2012

Может быть, это будет у вас

<form  id="upload" enctype="multipart/form-data" action="upload_file.php" method="post">
   <input id="choosefile" type="file" name="file[]" onchange="makeFileList();" multiple/>
   <input type="submit" />
   </form>

<ul id="fileList"><li>No Files Selected</li></ul>

<script type="text/javascript">
        function makeFileList() {
            var input = document.getElementById("choosefile");
            var ul = document.getElementById("fileList");
            while (ul.hasChildNodes()) {
                ul.removeChild(ul.firstChild);
            }

            for (var i = 0; i < input.files.length; i++) {
                var li = document.createElement("li");
                li.innerHTML = input.files[i].name;
                ul.appendChild(li);
            }
            if(!ul.hasChildNodes()) {
                var li = document.createElement("li");
                li.innerHTML = 'No Files Selected';
                ul.appendChild(li);
            }
        }
    </script>
1 голос
/ 06 марта 2012

Вы можете использовать HTML5 File API .Также, возможно, стоит проверить, поддерживает ли браузер его, с помощью Modernizr .

0 голосов
/ 06 марта 2012

на firefox и webkit

document.getElementById("choosefile").onchange = function  (  ) {
    var i = 0, files = this.files;
    for ( ;l = files.length; i < l; i += 1 ){
        console.log ( files[i].name );
    }
};
...