jQuery+очистка <input type='file' /> #494694


#0 by kitt
Опытные операводы, нужна помощь. Есть трабла - не хочет очищатся значение input:file не хочет очищатся посредством jQuery вот код <!DOCTYPE html> <html> <head>  <script src="http://code.jquery.com/jquery-latest.min.js"></script> </head> <body>    <p>    <input id='f1' name='file1' type='file' />    </p>    <p>        <input id='b1' name='button1' type='button' value='test file!' />    </p>        <script>        $(function                    {                        $('#b1').click(function(arg){                             $('#f1').val('');                            //Пробовал по всякому                            //$('#f1').val(false);                            //$('#f1').val(undefined);                            //$('#f1').val(null);                            //$('#f1').attr('value','');                            //$('#f1').attr('value',undefined);                            //$('#f1').attr('value',null);                                                    });                    }            );                    </script> </body> </html> выручайте! ПС в фф3 работает, в ie6 - нет. Пока больше нет возможности проверить в других браузерах
#1 by sergeante
В Chrome работает.
#2 by sergeante
попробуй вместо >> jQuery('#f1').val(''); это >> document.getElementById('f1').value = '';
#3 by kitt
ну по идее jQuery должна делать то же самое
#4 by kitt
>> document.getElementById('f1').value = ''; та же история. В файрфоксе работает, в опере нет(
#5 by kitt
$('#f1').attr('type','text').val('').attr('type','file'); //Ошибка: uncaught exception: type property can't be changed Хитрость не прошла
#6 by woody woodpecker
$("#f1").attr("value","''");
#7 by kitt
см. //Пробовал по всякому                           //$('#f1').val(false);                           //$('#f1').val(undefined);                           //$('#f1').val(null);                           //$('#f1').attr('value','');                           //$('#f1').attr('value',undefined);                           //$('#f1').attr('value',null);
#8 by Asmody
val method should not be used to set values to input type File, it will not work.
#9 by Asmody
#10 by kitt
блин, в файрфоксе офигенная уязвимость получается. Скрипт веб страницы может отправить на сервер любой файл, к которому есть доступ на чтение.
#11 by kitt
а, не, при попытке установить значение и отправить форму из скрипта выдает Ошибка: uncaught exception: [Exception... "Security error"  code: "1000" nsresult: "0x805303e8 (NS_ERROR_DOM_SECURITY_ERR)"  location: "http://code.jquery.com/jquery-latest.min.js Line: 47"]
#12 by kitt
document.getElementById('f1').innerHTML = document.getElementById('f1').innerHTML; в опере всё равно не робит
#13 by kitt
хотя на сайте указаном в качестве примера, в опере работает, буду разбираться
#14 by kitt
короче получилось вот так $('#f1').parent.html($('#f1').parent.html); всем спасибо!
#15 by kitt
только получается один фиг, не установка значения, а удаление элемента и вставка нового, события при этом тоже убиваются.
#16 by kitt
собственно хотел, для компактности кода прописать что то вроде $('#f1').after($('#f1').clone(true)); для мультизагрузки файлов. Хотел чтобы вместе с input:file скопировался обработчик change и не пришлось его дополнительно присваивать. Но всместе с обработчиком копируются данные из поля, и убрать их можно только убив элемент вместе с событиями.
Тэги: Веб-мастеринг
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С