|
Модераторы: Sardar, Aliance |
|
polosatij |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 22.2.2004 Где: Stuttgart<-> ;Karlsruhe, Germany Репутация: нет Всего: 8 |
в общем, надоело писать одно и то же.. посему сейчас затратил часик и написал скрипт для сборки данных с формы..
просьба посмотреть, высказать мысли, поправить, если кто-то что-то найдёт или просто предложить более лучший вариант:
Это сообщение отредактировал(а) polosatij - 30.4.2007, 20:45 |
|||
|
||||
Alex_B |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 122 Регистрация: 24.4.2007 Репутация: 1 Всего: 1 |
переменная ii объявлена глобальной? тогда нельзя будет применить скрипт если на странице более одной формы
|
|||
|
||||
polosatij |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 22.2.2004 Где: Stuttgart<-> ;Karlsruhe, Germany Репутация: нет Всего: 8 |
вторая версия продукта
принимая помарки и считая то, что input может не быть node от form имеем:
да, кстати, незабудьте, например, про encodeURIComponent Это сообщение отредактировал(а) polosatij - 30.4.2007, 21:50 |
|||
|
||||
AKS |
|
|||
Участник форума Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 2 Всего: 52 |
polosatij
Глядя на ту часть кода в функции getMapAusForm, которая касается перебора "детишек" в select'е, я понял, что интересуют только option. Зачем тогда браться за перебор коллекции childNodes? Можно ведь сразу "уцепиться" за options - условие в цикле останется одно и будет оно короче... |
|||
|
||||
polosatij |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 22.2.2004 Где: Stuttgart<-> ;Karlsruhe, Germany Репутация: нет Всего: 8 |
AKS,
да, ты прав, это излишки прошлой версии значит так, переправляя строку 41, имеем:
|
|||
|
||||
AKS |
|
|||
Участник форума Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 2 Всего: 52 |
polosatij, у меня еще такой вопрос.
В функции getMapAusForm есть два цикла по коллекциям elements объекта формы и options объекта меню выбора. Могут ли в эти коллекции "попасться" безымянные элементы? Т.е. есть ли смысл в условиях, вроде:
Лично я не могу утвержать, что это возможно, или же наоборот - поэтому и спрашиваю. |
|||
|
||||
polosatij |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 22.2.2004 Где: Stuttgart<-> ;Karlsruhe, Germany Репутация: нет Всего: 8 |
ммм.. я это сделал, так как не вижу смысла в элементах, у которых нет имени => ведь данные передающиеся по AJAX должны быть хоть как-то названы.. ведь на сервере, их надо как-то спрашивать |
|||
|
||||
AKS |
|
|||
Участник форума Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 2 Всего: 52 |
polosatij, так вот я и хочу узнать ваше мнение - могут ли в коллекцию элементов формы попасть элементы без имени. Т.е. мне кажется, что если у элемента нет имени тэга, то как он вообще может оказаться среди элементов формы (или меню выбора)?
|
|||
|
||||
12345c |
|
|||
Круглый Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 2 Всего: 101 |
AKS: насколько помню, элементы без имени так и передаются: ?=12&=34& ...
|
|||
|
||||
AKS |
|
||||
Участник форума Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 2 Всего: 52 |
Т.к. для IE надо было заменить цикл for...in, неподходящий для перебора коллекции элементов формы, стал переделывать. Вот что в результате получилось из функции getMapAusForm:
Добавлено @ 16:13 12345c, не то я имел ввиду. Условие:
Т.е. по-русски спрашиваем: "Элемент, а есть ли у тебя имя тэга?", так ведь? Вот я и хочу узнать (сам на 100% не знаю) - а бывают ли в коллекциях элементы без имени тэга? Это сообщение отредактировал(а) AKS - 2.5.2007, 16:24 |
||||
|
|||||
12345c |
|
|||
Круглый Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 2 Всего: 101 |
AKS, nodeName - это совсем не из "коллекции элементов формы" - form.
при проверке "правильные" браузеры сказали, что нет, а IE - да (при пустом имени тег.
|
|||
|
||||
AKS |
|
|||
Участник форума Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 2 Всего: 52 |
12345c, ничего не пойму! Что значит:
? Взял я, к примеру, коллекцию form.elements. Вот я ее перебираю и спрашиваю каждый элемент коллекции: "Есть у тебя nodeName?" О чем речь? О имени тэга. Правильно? |
|||
|
||||
DenVdmj |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 11.6.2007 Репутация: нет Всего: нет |
Рылся в гугле, искал код собирающий данные с форм, опять на винграде обнаружилось интересное обсуждение .
Что забавно, кругом примеры с использованием фрэймворков, джиквери и прототип в основном. Другие имеют или очень раздутый код или работают некорректно. Код от АКС'а один из самых простых, но тоже не идеален, например:
нет обнуления i2 для каждого нового select'а, очевидный недосмотр. Но на самом деле тут еще большие проблемы, попробуйте выбрать несколько опций (например "select №1, value №1", "select №2, value №2", "select №3, value №3") на такой форме:
Вызов: getUrlFromMap(getMapAusForm('testform', true)) покажет: =Сброс&input_text_disabled=123&input_text=0&input_radioA=r3&select1=S1-V1 в то время как Prototype: $('testform').serialize() сериализует так: input_text=0&input_password=&input_file=&input_hidden=&select1=S1-V1&select2=S2-V2&select3=S3-V3&textarea= В чем дело? Правильно ли поступает прототайп, что добавляет, например, пустой input_file? Как написать правильный сериализатор формы? Ответы для себя нашел тут: www.w3.org. Forms. 17.13.2 Successful controls (перевод: Спецификация HTML 4.01. Формы 17.13.2 "Действующие" ЭУ, поиск перевода в Google) После прочтения рекомендаций родился такой вариант (не без оглядки на код АКС'а):
Рекомендациям этот код полностью не соответствует, например должна отправляться только нажатая кнопка submit, и еще всякое по мелочам, но, допустим, в отличии от прототайпа не "отправляется" reset, и в url-строку не добавляются лишние амперсанды. Ну и если посмотреть сколько кода тратят популярные фреймворки на решение одной только этой задачи, то становится просто плохо. PS. Фрагмент тестового html с формой:
|
||||||||
|
|||||||||
Здесь публикуют скрипты, которые уже проверены в обсуждениях других тем (при этом полезно поставить ссылки на все смежные обсуждения) или переносятся кем-либо из модераторов по просьбе участников, если видно, что в результате обсуждения темы был написан полезный или интересный скрипт. Третий возможный вариант - участник форума публикует скрипт, заведомо известный как полезный и эффективный, для, возможно, небольшой доработки и обсуждения. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Наши скрипты | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |