Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получение свойства action 
:(
    Опции темы
kkorsakoff
Дата 7.11.2005, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.10.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 14



Когда в форме присутствует элемент с именем action, я не могу в скрипте получить значение свойства action тега form. То есть данная конструкция

document.forms(0).action

адресует элемент, а не свойство.

Как можно в данном случае получить тот action, который именно свойствоsmile
PM MAIL WWW ICQ   Вверх
sergejzr
Дата 7.11.2005, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



по ID выбирай.
Код

<form id="myForm"></form>
<script>
myForm=document.getElementById("myForm");
</script>



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
kkorsakoff
Дата 7.11.2005, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.10.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 14



К сожалению, ID у элемента нет. Я не имею возможности менять HTML:(
PM MAIL WWW ICQ   Вверх
sergejzr
Дата 7.11.2005, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



А что есть? name? И как это, скрипт меняешь, а ХТМЛ - нет?

Вот ещё вариант:
Код

<script>
myForm=document.getElementsByTagName("form").item(0);
</script>



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
kkorsakoff
Дата 7.11.2005, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.10.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 14



Есть номер формы и имя, если оно указано.
Почему так, рассказывать долго. Вкратце я из java пытаюсь взаимодействовать с формой, имея метод executeScript(String scr).

Сейчас попробую ваш способ, заранее спасибо
Добавлено @ 18:48
Не получается. Пробую алертом,
Код

alert(document.getElementsByTagName('form').item(0).action);



Выдает [object], а если добавить .value, то значение элемента с именем action

Какие еще будут варианты? smile
Добавлено @ 18:50
Может быть есть что-то вроде массива свойств тега, по которому можно пробежаться в поисках action?
PM MAIL WWW ICQ   Вверх
sergejzr
Дата 7.11.2005, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Хмм.. а если пробежаться?
Код

<script>
myForms=document.getElementsByTagName("form");

for(i=0;i<myForms.length;i++)
alert(myForms.item(i).action);

</script>



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
kkorsakoff
Дата 7.11.2005, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.10.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 14



Один раз выскочило "[object]". Не катит
PM MAIL WWW ICQ   Вверх
sergejzr
Дата 7.11.2005, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Это всё оченэ странно... Дайте ХТМЛ, если не жалко smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
kkorsakoff
Дата 7.11.2005, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.10.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 14



Код

<table width="462" border="0" align="center" cellpadding="1" cellspacing="0" bgcolor="#000000">
            <form ENCTYPE='multipart/form-data' method=post action="submit_form2.php" >
              <input type=hidden name=recipover value=''>
              <input type=hidden name=cleanup value=''>
              <tr> 
                <td> <table width="100%" border="1" cellpadding="8" cellspacing="0" bgcolor="#CCCCCC">
                    <tr> 
                      <td colspan="2" bgcolor="#000000"><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong> 
                        ####                        Gallery Submission</strong></font></td>
                    </tr>
                    <tr> 
                      <td width="27%" align="center" bgcolor="#666666"> <div align="left"><strong><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif">Your 
                          Name:</font></strong></div></td>
                      <td width="73%" bgcolor="#eeeeee"> <input type="text" name="name" value=""> 
                      </td>
                    </tr>
                    <tr> 
                      <td height="50" align="center" bgcolor="#666666"> <div align="left"><strong><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif">E-Mail 
                          Address:</font></strong></div></td>
                      <td width="73%" bgcolor="#eeeeee"> <input type="text" name="email" value=""> 
                      </td>
                    </tr>
                    <tr> 
                      <td bgcolor="#666666"><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Gallery 
                        Type:</strong></font></td>
                      <td bgcolor="#eeeeee"><select name="galtype" id="galtype">
                          <option value="pictures" selected>Picture Gallery</option>
                          <option value="movies">Movie Gallery</option>
                        </select></td>
                    </tr>
                    <tr> 
                      <td bgcolor="#666666"><font color="#FFFFFF" size="2" face="Verdana, Arial, Helv
etica, sans-serif"><strong>Category:</strong></font></td>
                      <td bgcolor="#eeeeee"><select name="action" size="12">
                          <option value="N/A" selected>Select Category...</option>
                          option value='auto'>auto</option>                        </select></td>
                    </tr>
                    <tr> 
                      <td align="center" bgcolor="#666666"> <div align="left"><strong><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif">Gallery 
                          URL:</font></strong></div></td>
                      <td width="73%" bgcolor="#eeeeee"> <input type="text" name="url" size="35"> 
                      </td>
                    </tr>
                                                            <tr bgcolor="#333333"> 
                      <td bgcolor="#666666"><strong><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif">Thumbnail:</font></strong></td>
                      <td align="center" bgcolor="#eeeeee"><div align="left"> 
                          <input name="thumbnail" type="file" id="thumbnail" size="35">
                        </div></td>
                    </tr>
                                        <tr bgcolor="#333333"> 
                      <td colspan="2" align="center"> <div align="left"><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Preferred 
                          Submitters Enter Your Username/Password 
                                                    </strong></font></div></td>
                    </tr>
                    <tr> 
                      <td align="center" bgcolor="#666666"> <div align="left"><font color="#FFFFFF"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Username:</font></b></font></div></td>
                      <td bgcolor="#eeeeee"> <input name="username" type="text" value=""> 
                      </td>
                    </tr>
                    <tr> 
                      <td align="center" bgcolor="#666666"> <div align="left"><font color="#FFFFFF"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Password:</font></b></font></div></td>
                      <td bgcolor="#eeeeee"> <input name="password" type="password" value=""> 
                      </td>
                    </tr>
                    <tr bgcolor="#333333"> 
                      <td colspan="2" align="center"> <div align="left"><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif">Remember 
                          to upload a thumbnail after your submission is processed. 
                          It'll help you get listed!</font></div></td>
                    </tr>
                    <tr bgcolor="#000000"> 
                      <td colspan="2" align="center"> <input type="submit" name="Submit" value="Submit Your Gallery"> 
                      </td>
                    </tr>
                  </table></td>
              </tr>
            </form>
          </table>

Добавлено @ 20:20
Вот я вырезал саму форму и таблицу, ее содержащую для красоты. Пожалуйста, хотя можете написать простейшую форму с одним элементом, которое будет иметь имя action:)
Добавлено @ 20:22
P.S. Это единственная форма в документе.
Адресую я ее по номеру (0), т.к. имени она не имеет
PM MAIL WWW ICQ   Вверх
Sardar
Дата 7.11.2005, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



sergej.z через item(0) ты достаёшь первый элемент формы, а нужен аттрибут.

К сожалению эта фишка ещё от нетскейпа пошла, что бы обойти засорение пространства имён и были введены коллекции elements, options и т.д. По моему есть один выход, не называть элементы именами action, submit и т.д. Меньше гимора.

Также можно опрашивать form.getAttribute('action') должен вернуть именно аттрибут.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
kkorsakoff
Дата 8.11.2005, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.10.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 14



Не возвращает ничего.
Прийдется мне похоже парсить исходный хтмл и доставать оттуда action:(
PM MAIL WWW ICQ   Вверх
Sardar
Дата 9.11.2005, 01:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(kkorsakoff @ 8.11.2005, 20:03)
Не возвращает ничего.

Xорошо бы при таких утверждениях код свой выкладывать, впрочем забивать гвозди ладошками никто не запрещал smile

ИЕ тупит на getAttribute, возращая SELECT элемент. Это нормально для него, он часто тупит по стандартам. НО! до введения getAttribute народ почуял глупость подхода с аттрибутами и элементами, потому были сделанны две коллекции: atributes - содержит все аттрибуты и elements - содержит все дочерние элементы формы.

Таким образом даём форме id='test', затем:
alert(document.getElementById('test').attributes.item('action').value);
и получаем значение action.

Помним что ИЕ опять тупит, ИЕ 5.5+ возвращает из attributes обьект, в то время как ИЕ 5.0- возвращает значение аттрибута. Соотвественно для "новых" ИЕ нужно опрашивать value у обьекта, для старых value будет давать undefined, что нужно учесть.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
kkorsakoff
Дата 9.11.2005, 02:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.10.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 14



Извиняюсь за неконкретный ответ, но form.getAttribute('action') возвращало объект. Какой именно я узнать не мог, т.к. не знаю как. Но я ожидал строку (всмысле автор того поста ожидал), поэтому я отбраковал этот путь.

Спасибо! Сейчас все получилось. Интересно было бы узнать, что возвратит в данном случае Mozilla. И не могли бы вы привести небольшой скриптик, как в зависимости от браузера запрашивать значение action. Я пишу на java, с javascript'ом знаком совсем мало. Хоть синтаксис чем-то и похож, тем не менее языки абсолютно разные. Можно конечно изучить, но проблема с action'a всего лишь 1/10000 всего проекта, и я не могу себе позволить тратить на это много времени. Поэтому и обратился на форумsmile
PM MAIL WWW ICQ   Вверх
Sardar
Дата 9.11.2005, 02:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Под мозиллой и под ИЕ так работает: alert(document.getElementById('test').attributes['action'].value);

При вызове item мозилла возвращает значение id аттрибута... smile

Опера тоже должна работать правильно, attributes это коллекция из DOM 1 по моему.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Aliance
Дата 9.11.2005, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Цитата(Sardar @ 9.11.2005, 02:05)
item('action').

Сардар, а разве у метода item() аргумент не числовой только? Строковый тоже может быть?

Это сообщение отредактировал(а) Aliance - 9.11.2005, 20:13
PM MAIL WWW ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0645 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.