Javascript.RU

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

FF. Ошибка при выполнении скрипта.
Доброго времени суток. Я только начал перелезать из делфей в Javascript, поэтому не глумитесь сильно над вопросом. У меня в функции есть обработка формы типа textarea с именем S1. При выполнении скрипта-функции первой строкой идет выражение S1.value="", т.е. я хочу каждый раз чичтить форму, вот на эту строчку имеется ошибка "S1 is not defined". Подскажие в чем причина пожалуйста, в Opera проблемы такой нет.
Ответить с цитированием
  #2 (permalink)  
Старый 18.07.2011, 14:56
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

попробуй найти зону по имени.. (ф-я возвратит нумерованный список. так что,если эл. один, то придется писать [0] )

<textarea name="S1"></textarea>
<script>
alert(  document.getElementsByName("S1")[0] )
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 18.07.2011, 15:58
Новичок на форуме
Отправить личное сообщение для nordek Посмотреть профиль Найти все сообщения от nordek
 
Регистрация: 18.07.2011
Сообщений: 3

Выдает сообщение [object]. ???
Ответить с цитированием
  #4 (permalink)  
Старый 18.07.2011, 16:06
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Потому что <textarea> - это объект (object).

Чтобы получить значение, делайте так:
<textarea name="S1">ololo</textarea><br>
<button onclick="alert(document.getElementsByName('S1')[0].value)">Посмотреть</button>
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #5 (permalink)  
Старый 18.07.2011, 21:56
Новичок на форуме
Отправить личное сообщение для nordek Посмотреть профиль Найти все сообщения от nordek
 
Регистрация: 18.07.2011
Сообщений: 3

Я привык как в делфях, что можно присвоить переменной значение поля формы, например текстовой, через ее имя (w:=form1.edit1.text), так и тут сделал: var w=S1.value, где S1 - имя формы тип TextArea, опера, которой я пользуюсь, ошибок не дала, я и успокоился...
А скажите, на сколько грамотно будет, если я со своим кодом для умаеньшения геммора с корректировкой кода, поступлю так - там где у меня, скажем, w=S1.value; строчкой ранее я напишу так: var S1=document.getElementsByName("S1")[0], т.е. присвою переменной S1 одноименную форму, и дальнейший код можно не менять...
Ответить с цитированием
  #6 (permalink)  
Старый 18.07.2011, 22:36
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Будут кроссбраузерные гадости. Фишка в том, что эксплорер (и опера вслед за ним, "в целях лучшей совместимости") имеет привычку создавать из элементов вида tagName#id (с идентификатором, проще говоря) глобальные объекты с именем идентификатора. Причём в эксплорере я натыкался ещё и на то, что он не даёт менять им значение. Выхода два:

1) ставить перед идентификатором двоеточие. Тогда глобальный объект создаваться не будет. Минус: нельзя будет назначать стили по идентификатору.
2) называть сами переменные по-другому.

Отмечу, что все вышеперечисленные проблемы - только в глобальной области видимости. Если делать так в ф-ции (не забывая var при этом) - то всё будет прекрасно.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #7 (permalink)  
Старый 18.07.2011, 22:36
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

все будет ок

кеширование это называется
Ответить с цитированием
  #8 (permalink)  
Старый 18.07.2011, 23:20
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

<div id="div">text</div>
<script>
div="bla";
alert(div);
</script>


Под ie ошибка.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #9 (permalink)  
Старый 18.07.2011, 23:42
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

я ответил автору топика, просто ты опередил, trikadin
Ответить с цитированием
  #10 (permalink)  
Старый 18.07.2011, 23:58
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

А, понятно)
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
IE выдает ошибку при обработке скрипта sailormoon Javascript под браузер 1 10.08.2010 09:20
Ускорение при выполнении setInterval.. Sweet Элементы интерфейса 6 17.03.2010 10:24
Ошибка при добавлении обработчика к событию Riim Events/DOM/Window 32 19.01.2010 14:17
Выполнение скрипта при нажатии Entet в текстовм поле Vlasssov Общие вопросы Javascript 4 23.08.2009 23:31
Ошибка скрипта меню в IE Mortymer Элементы интерфейса 1 03.04.2009 03:58