Ошибка 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. Подскажите, в чем может быть проблема? Почему страница не работает, а консоль того же браузера прекрасно определяет значение переменной? |
Allality, скорее всего какого-либо атрибута (name, value) не существует у какого-то элемента формы...
проверяйте на существование атрибутов... |
Цитата:
|
Цитата:
<form name="parametry"> <input name="aaa" value="10" /> </form> Та же ошибка... |
vadim5june, это имя формы, по всей видимости...
|
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> |
Скопировал ваш текст, работает. Выношу <script> часть в <head> документа - опять получаю ошибку... :blink:
|
Allality, либо заворачивайте в функцию, либо размещайте после определения самой формы, т.к. на момент вызова (document.parametry.elements.length) не существует вашей формы parametry
|
Цитата:
|
window.onload=function(){}
|
Часовой пояс GMT +3, время: 14:25. |