Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.09.2013, 19:28
Новичок на форуме
Отправить личное сообщение для Деревня Посмотреть профиль Найти все сообщения от Деревня
 
Регистрация: 10.09.2013
Сообщений: 2

FF4 (и не только) не находит объект по имени.
Задана таблица с 3-мя столбцами.
Шапка выглядит так:
<tr><td><input type='button' value='Фільтрувати' onClick=funFilter(lstAuthor.value,lstTheme.value)> </td><td><select name='lstAuthor'><option value='---' selected>---<option value=...</select></td><td><select name='lstTheme'><option value='---' selected>---<option value=...</select></td></tr>

Скрипт выполянет фильтрацию. Когда был написан html код и скрипт, в 6-м осле заработало практически сразу на ура, а проэкт был отложен в очередь в связи с низким приоритетом. И вот совсем недавно выяснилось, что 4-я лиса ругается: "lstAuthor is not defined", точно так же ругается 16-я опера (в 12-й работает!). Помогите отрыть собаку.
Ответить с цитированием
  #2 (permalink)  
Старый 10.09.2013, 19:41
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

А почему это вообще должно работать? Объясни пожалуйста.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 10.09.2013, 20:08
Новичок на форуме
Отправить личное сообщение для Деревня Посмотреть профиль Найти все сообщения от Деревня
 
Регистрация: 10.09.2013
Сообщений: 2

А почему бы и нет?)
Почему это не должно работать?)

Дело в том, что документ писался по наитию, методом "научного тыка". Опыт разработки на ЯВУ подсказывал что если у объекта есть имя, можно попытаться внаглую обратиться к нему по имени. Как в Delphi, например, или VB. Обратился. Ишак возражать не стал. И до сих пор не возражает. Ну, я с чистой совестью и чувством выполненого долга забы(и)л на это дело. А когда позже выяснилось, что работает не везде, расстроился, конечно. Трагикомично, что работает в самом презираемом общественностью обозревателе. Ну, вот еще опера 12-я понимает. На той же машине 16-я стоит и не хочет понимать... Так что надежда заставить работать есть. Порыться в настройках обозревателя, м. б., или уточнить как-то обращение к объекту...
Ответить с цитированием
  #4 (permalink)  
Старый 10.09.2013, 20:47
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

name задает имена только полям форм и имет особый смысл только впределах этих форм. А у тебя код даже не пытается работать с формой. "имя" элемента (любого) же в общем задается атрибутом id. И действительно существует возможность обращаться напрямую по имени (то есть браузер автоматически создает свойства window.id_элемента). Но в отношении контролов это хреново работает в IE.

Атрибуты же name контролов автоматически мапятся на соответствующие свойства родительской формы. Ссылка на форму есть у каждого контрола.
Так что код должен быть таким:
<input onсlick=funFilter(this.form.lstAuthor.value,this.form.lstTheme.value)>

Причем this можно опустить, так как инлайн-обработчики браузер оборачивает во что-то типа
with (this) { ... }
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать объект в объекте Bryant-24 Общие вопросы Javascript 3 10.07.2013 16:06
Не находит объект Midel jQuery 2 30.12.2012 14:21
Элементарный подсчет и калькулятор PashaShulga Общие вопросы Javascript 5 14.03.2012 21:42
Проблема с IE - находит по шаблону только первый элемент tim-ua jQuery 3 17.07.2010 18:36
Спойлер работает только на один объект на странице. Shanks Общие вопросы Javascript 4 10.05.2009 14:53