Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Загрузка аватарки без перезагрузки страницы (https://javascript.ru/forum/jquery/3726-zagruzka-avatarki-bez-perezagruzki-stranicy.html)

x-yuri 19.05.2009 16:24

нужно так: поискать вокруг форму, если нету, то обернуть текущий элемент в форму, если есть - проверить ее enctype, ну еще, может, что-нибудь подправить

p.s. формы не могут быть вложенными - http://www.w3.org/TR/html401/interac...html#edef-FORM
<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM) -- interactive form -->

grusha 19.05.2009 21:07

Вот еще форма для загрузки http://www.uploadify.com/ , работает на Flash , но есть возможность изменить вид кнопки и убрать форму после загрузки файла.У меня реализовано так: разрешено загружать 3 файла, после загрузки 3-его форма убирается.

Цитата:

Возможно ли это?
Суть задачи при загрузке аватарки нужно проверить вес и размеры изображения. интересно можно ли это здедать на стороне клиента?
Также эта форма позволяет определить как вес файла , так и его размер. Вес файла определяет до нажатия кнопки , а размеры ,после нажатия кнопки "загрузить".У меня реализованно так: стоят минимальные размеры изображения , 150 px на 150 px, если размеры меньше , то выдает алерт с текстом и картинка не грузится.

kez 20.05.2009 10:23

grusha, красивая реализация, но много зачачивать т.к. у меня серверная сторона не пхп

kez 20.05.2009 10:30

x-yuri, а неподскажите, пожалуйста как самым красивым способом узнать есть ли у элемента форма?

Kolyaj 20.05.2009 10:51

Цитата:

Сообщение от kez
узнать есть ли у элемента форма?

element.form

kez 20.05.2009 11:24

alert($('#upload1').form) возвращает undefined
я мало знаком с jQuery. хотелось бы именно ее средствами

kez 20.05.2009 11:44

во!
$('#upload1').parents("form")

kez 20.05.2009 12:23

не могу понять

Код:

        var form;
        if($('#upload1').parents("form").size() > 0){
            form = $('#upload1').parents("form");
            $(form).attr("enctype", options.enctype);
            alert($(form).attr("enctype"))
        }else{
            form = $(
                '<form '+
                'method="post" '+
                'enctype="'+options.enctype+'" '+
                'action="'+options.action+'" '+
                'target="iframe'+id+'"'+
                '></form>'
                ).css({
                margin: 0,
                padding: 0
            });
        }

в options.enctype значение 'multipart/form-data'
я его устанавливаю
Код:

$(form).attr("enctype", options.enctype);
но когда пытаюсь сразу получить его
Код:

alert($(form).attr("enctype"))
там application/x-www-form-urlencoded

x-yuri 20.05.2009 15:10

Цитата:

alert($('#upload1').form) возвращает undefined
alert($('#upload1')[0].form)


Цитата:

я его устанавливаю
alert( options.enctype );

kez 20.05.2009 15:33

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

var form;
if(element.parents("form").size() < 0){
}else{

form = $(
'<form '+
'method="post" '+
'enctype="'+options.enctype+'" '+
'action="'+options.action+'" '+
'target="iframe'+id+'"'+
'></form>'
).css({
margin: 0,
padding: 0
});

}


Часовой пояс GMT +3, время: 17:44.