![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
JohnB |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 29.9.2008 Репутация: нет Всего: нет |
Есть форма.
и javascript обработчик.
т.е. просто функция получает переменные и выводит их. и все работает. Но вот когда такая же функция с такими же полями выполняется из скрытого iframe в который загружена эта форма. то переменные в Opera не передаются...( в IE все нормально. вот функция которая выполняется из формы в iframe
переменные выводятся ==0 хотя если поставишь значние value в форму то будет передаваться эти значения. Т.е. те, которые вводишь в форму ручками не передаються. В чем может быть проблема? |
||||||
|
|||||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 15 Всего: 315 |
я бы посоветовал не пользоваться именами переменных form и id, мой редактор их цветов выделяет, может они зарезервированы. хотя бы form1 и id1
а где во втором случае находится кнопка, вызывающая функцию addSum() ? в основном документе или внутри фрэйма мож какой обработчик? |
|||
|
||||
JohnB |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 29.9.2008 Репутация: нет Всего: нет |
bars80080, Во первых, спасибо что откликнулся.
Во вторых имена пробовал разные... абсолютно... Причему для IE достаточно такой конструкции допустим form2 =document.getElementById("id_формы"); и данные видим!!! а в Opere верхняя конструкция вообще не вызывает ничего. а вот такая form2 = window.frames['имя_фрейма'].document.getElementById('id_формы'); или такая form2 = parent.frames['имя_фрейма'].document.getElementById('id_формы'); при alert(form2); выдает типа object HTMLFormElement т.е. форму видит а данные из ее полей нет :((( где во втором случае находится кнопка, вызывающая функцию addSum() ? в основном документе или внутри фрэйма. Ответ: Внутри фрейма. Это сообщение отредактировал(а) JohnB - 29.9.2008, 09:53 |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 15 Всего: 315 |
а как же она работает, если он скрытый? а ты точно запускаешь эту функцию? ведь для запуска её из фрэйма (если функция лежит в основном документе) надо обращение к ней устраивать так: parent.addSum(); если же функция наоборот находится внутри фрэйма, как и вызывающая его кнопка, то обращение к форме должно быть без всяких фрэймов, сразу к форме ну и попробуй ещё обратьтся к элементам не так: id = form.id.value; id_sum = form.id_sum.value; а через их непосредственные идентификаторы, т.е. назначить каждому полю свой id и вытащи их через getElementById, или если не хочется, то через getElementsByTagName('input')[1] |
|||
|
||||
JohnB |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 29.9.2008 Репутация: нет Всего: нет |
да запускается эта функция без всяких парентов. потому что все изменения в ней при вызове отпрабатываются.
ладно попробую через id ы элементов формы повтыкать. |
|||
|
||||
JohnB |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 29.9.2008 Репутация: нет Всего: нет |
Не фига не канает. Завяз на этом уже 3 день ищу ответ :((
|
|||
|
||||
Itsys |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1338 Регистрация: 21.1.2008 Где: г. Москва Репутация: 12 Всего: 34 |
Полный код в студию плз.
|
|||
|
||||
JohnB |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 29.9.2008 Репутация: нет Всего: нет |
Вот функция полная которая получает данные из iframe и не может никак получить.
В IE она работает если вместо form2 =window.frames["sframe5"+m+""].document.getElementById("compl_send"); поставить form2 =document.getElementById("compl_send"); а в Opera не хочет (
|
|||
|
||||
Loengreen |
|
||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 13.7.2007 Репутация: нет Всего: нет |
Можно так.
Объявляем переменную в родителе.
Код в iframe:
Или даже так: В родителе:
В iframe:
Попробуйте. У меня так везде работает. ![]() |
||||||||
|
|||||||||
JohnB |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 29.9.2008 Репутация: нет Всего: нет |
Loengreen, спасибо вы натолкнули меня на правильную мысль.
|
|||
|
||||
![]() ![]() ![]() |
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |