Javascript.RU

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

Ошибка Uncaught TypeError: Cannot read property 'elements' of undefined
Пытаюсь собрать данные большой формы, с помощью кода, которым поделился программер, но все время получаю странную ошибку. Chrome выдает такой текст:

Uncaught TypeError: Cannot read property 'elements' of undefined

Сам код:

var str = '';
for(i=0; i < document.parametry.elements.length; i++)
{
   str += document.parametry.elements[i].name + '=' + encodeURIComponent(document.parametry.elements[i].value) + '&';
}
str = str.substring(0, str.length-1);
alert(str);


При этом, когда ввожу в консоли Chrome это:
document.parametry.elements.length

Получаю ответ - число 7.

Подскажите, в чем может быть проблема? Почему страница не работает, а консоль того же браузера прекрасно определяет значение переменной?
Ответить с цитированием
  #2 (permalink)  
Старый 28.07.2012, 19:50
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Allality, скорее всего какого-либо атрибута (name, value) не существует у какого-то элемента формы...
проверяйте на существование атрибутов...
Ответить с цитированием
  #3 (permalink)  
Старый 28.07.2012, 19:56
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от Allality Посмотреть сообщение
При этом, когда ввожу в консоли Chrome это:
document.parametry.elements.length

Получаю ответ - число 7.

Подскажите, в чем может быть проблема? Почему страница не работает, а консоль того же браузера прекрасно определяет значение переменной?
у меня document.parametry=undefined и на странице и в консоли хрома
Ответить с цитированием
  #4 (permalink)  
Старый 28.07.2012, 19:58
Интересующийся
Отправить личное сообщение для Allality Посмотреть профиль Найти все сообщения от Allality
 
Регистрация: 28.07.2012
Сообщений: 29

Сообщение от lord2kim Посмотреть сообщение
Allality, скорее всего какого-либо атрибута (name, value) не существует у какого-то элемента формы...
проверяйте на существование атрибутов...
Попробовал простую форму:

<form name="parametry">
<input name="aaa" value="10" />
</form>


Та же ошибка...
Ответить с цитированием
  #5 (permalink)  
Старый 28.07.2012, 19:58
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

vadim5june, это имя формы, по всей видимости...
Ответить с цитированием
  #6 (permalink)  
Старый 28.07.2012, 20:00
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Allality,
<form name="parametry">
<input name="aaa" value="10" />
</form>
<script>
var str = '';
for(i=0; i < document.parametry.elements.length; i++)
{
   str += document.parametry.elements[i].name + '=' + encodeURIComponent(document.parametry.elements[i].value) + (i == document.parametry.elements.length -1 ? '' : '&');
}
alert(str);
</script>

Последний раз редактировалось lord2kim, 28.07.2012 в 20:04.
Ответить с цитированием
  #7 (permalink)  
Старый 28.07.2012, 20:06
Интересующийся
Отправить личное сообщение для Allality Посмотреть профиль Найти все сообщения от Allality
 
Регистрация: 28.07.2012
Сообщений: 29

Скопировал ваш текст, работает. Выношу <script> часть в <head> документа - опять получаю ошибку...
Ответить с цитированием
  #8 (permalink)  
Старый 28.07.2012, 20:07
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Allality, либо заворачивайте в функцию, либо размещайте после определения самой формы, т.к. на момент вызова (document.parametry.elements.length) не существует вашей формы parametry
Ответить с цитированием
  #9 (permalink)  
Старый 28.07.2012, 20:08
Интересующийся
Отправить личное сообщение для Allality Посмотреть профиль Найти все сообщения от Allality
 
Регистрация: 28.07.2012
Сообщений: 29

Сообщение от lord2kim Посмотреть сообщение
Allality, либо заворачивайте в функцию, либо размещайте после определения самой формы, т.к. на момент вызова (document.parametry.elements.length) не существует вашей формы parametry
Попробую в функцию завернуть. Спасибо огромное за помощь.
Ответить с цитированием
  #10 (permalink)  
Старый 28.07.2012, 20:09
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

window.onload=function(){}
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ext.data.Record.create - Uncaught TypeError: Cannot read property 'items' of undefine potkin ExtJS 2 01.07.2012 23:29
Cannot read property 'items' of undefined khusamov ExtJS 0 11.05.2012 04:33
JavaScript error: Cannot read property 'style' of null mainne Javascript под браузер 4 03.03.2012 18:15
Uncaught TypeError: undefined is not a function VivaLaMax Javascript под браузер 6 17.02.2012 05:04
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34