Работа с формой

26 views
Skip to first unread message

petrovich

unread,
Mar 19, 2012, 12:09:47 PM3/19/12
to RightJS Для Бородатых Хакеров
Добрый день. Возможно ли с помощью подобного запроса отправить на
сервер
прикреплённый файл?

Пример запроса:
Xhr.load('ur/action/', {
spinner: 'spinner_id',
method: 'post',
evalScripts:true,
encoding:'windows-1251',
params:{
filename: $('filename-id').getValue()
},
onSuccess: function(request) {

}
});

Т.к у меня получатся форма внутри формы, то необходимо отправить файл
не используя <form>. Возможно ли сделать это штатными средствами
rightjs?

Nikolay Nemshilov

unread,
Mar 19, 2012, 1:34:40 PM3/19/12
to right...@googlegroups.com
Привет,

Нет, без формы не получится. RightJS может отправлять файлы через ajax но, на самом деле это небольшой хак с iframe, который указан target-ом у какой-либо формы.

Т.е. вам необходимо просто создать небольшую форму, скрыть ее стилями, например типа "position: absolute; top -99999em" или типа того, потом вставить ее настраницу и отправить на сервер через Form#send().

Имейте так же ввиду, что input[type=file] не дают вам возможности программно устанавливать значение поля value, так что вам необходимо будет каждый раз генерировать новый input, а после того как пользователь что-либо в нем выберет, вставлять его как есть на вашу скрытую форму. Всмысле не клонируя.

А формы внутри форм, имхо bad design. Не уверен даже что HTML даже подразумевал такое.

--

зы. кстати, если интересует, в HTML 5 есть возможность отправлять формы напрямую через XmlHTTPRequest. Но работает ессно только в новых браузерах и в RightJS нативно не поддерживается

Vic Khomyackov

unread,
Mar 20, 2012, 3:48:54 PM3/20/12
to right...@googlegroups.com
А формы внутри форм, имхо bad design. Не уверен даже что HTML даже подразумевал такое.


И если мне память не изменяет, то IE6 вообще вылетал, встретив форму, вложенную в другую форму. Также некоторые браузеры могут игнорировать тег вложенной формы, просто вставляя её содержимое в вышестоящую форму.

Nikolay Nemshilov

unread,
Mar 21, 2012, 2:31:31 PM3/21/12
to right...@googlegroups.com
Я если честно никогда не пробовал делать вложенные формы, но да, этого и стоило ожидать

petrovich

unread,
Mar 25, 2012, 9:10:38 PM3/25/12
to RightJS Для Бородатых Хакеров
Да, спасибо, это я знаю, что вложенные формы не поддерживаются. А т.к
при первом приближении получилось, что внутри формы оказалась ещё одна
форма, то, чтобы всё не переделывать, захотелось найти ленивый способ.
Ну, а вдруг стало возможным. ;o)
Конечно в итоге пришлось разделять сиамский близнецов и делать, как
завещал Ленин.

On Mar 20, 11:48 pm, Vic Khomyackov <vkhomyac...@gmail.com> wrote:
> > А формы внутри форм, имхо bad design. Не уверен даже что HTML даже
> > подразумевал такое.
>

> HTML4.01 и XHTML1.0 DTD не разрешают вложенные формы:http://www.w3.org/TR/html401/interact/forms.html#h-17.3иhttp://www.w3.org/TR/xhtml1/dtds.html#dtdentry_xhtml1-transitional.dt...

Reply all
Reply to author
Forward
0 new messages