Проверить, выбрали ли они файл? - PullRequest
0 голосов
/ 13 ноября 2010

Я использую плагин jQuery, «uploadify», и я пытаюсь скрыть кнопку загрузки после начала загрузки, однако, если они нажимают на нее перед выбором файла, она все равно скрывает ее.

Вот моя функция отправки:

$("#add_list").submit(function(){

    // Set new list id
    $("#filename").uploadifySettings('scriptData', { 'new_list_id': $('#new_list_id').val() });

    // Hide upload button
    $("#upload_button").hide();    

    // Trigger upload
    $("#filename").uploadifyUpload();

});

Есть ли способ узнать значение поля имени файла? Я пытался ..

$("#filename").val()

.. но это не сработало. Всегда пусто даже при выборе файла.

Ответы [ 3 ]

1 голос
/ 13 ноября 2010

ОК ..... Поэтому я решил просто обновить скрытое значение поля формы с помощью события onSelect; таким образом, когда они выбрали файл, я могу обновить значение, указав, что они выбрали файл; затем проверьте это значение перед началом загрузки. Если при загрузке возникает проблема или пользователь удаляет файл, я обновлял значение до пустого значения при каждом запуске события onCancel.

Вот соответствующий код, если он кому-нибудь еще поможет ..

    'onComplete': function(event, ID, fileObj, response, data) {
        if (response != 'OK') {
            // Cancel upload
            $("#filename").uploadifyCancel(ID);               
            // Show upload button
            $("#upload_button").show();          
            // Output error message
            alert(response); 
        } else {
            // Submit secondary form on page
            document.finalize.submit();
        }
    },
    'onError': function(event,ID,fileObj,errorObj) {
        // Cancel upload
        $("#filename").uploadifyCancel(ID);
        // Format error msg
        var error_msg = errorObj.type + '. Error: '  + errorObj.info + '. File: ' + fileObj.name;
        alert(error_msg);
    },
    'onSelect': function(event,ID,fileObj) {
        // Update selected so we know they have selected a file
        $("#selected").val('yes');
    },
    'onCancel': function(event,ID,fileObj,data) {
        // Update selected so we know they have no file selected
        $("#selected").val('');
    }
});
$("#add_list").submit(function(){

    var selected = $("#selected").val();

    if (selected == 'yes') {

        // Set new list id
        $("#filename").uploadifySettings('scriptData', { 'new_list_id': $('#new_list_id').val() });

        // Hide upload button
        $("#upload_button").hide();    

        // Trigger upload
        $("#filename").uploadifyUpload();

    } else {

        alert('Please select a file to upload.');

    }

});    
0 голосов
/ 14 марта 2013

Вы также можете вызвать эту функцию php через AJAX, чтобы узнать, загружено ли что-нибудь.(Я переместил загруженные файлы в набор папок после загрузки, так что у меня это хорошо работает);)

0 голосов
/ 27 января 2012

Следуйте за этим.

function submitForm()
                        {
                            var html = document.getElementById('file_uploadQueue').innerHTML;
                            if(html.length > 0)
                                {
$('#file_upload').uploadifyUpload($('.uploadifyQueueItem').last().attr('id').replace('file_upload',''));
                            }
                            else
                            {
                            alert('choose file to upload');
// or you can submit the form. If uplodify is optional for u
                            }
                        }
...