Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.08.2012, 21:58
Интересующийся
Отправить личное сообщение для lol4eg Посмотреть профиль Найти все сообщения от lol4eg
 
Регистрация: 06.04.2010
Сообщений: 17

getelementbyid при display:none
Есть модальное окно, в нем расположена форма регистрации, нужно получить все данные с формы и отправить их потом на обработчик через ajax. Проблема с получением данных с инпутов через getelementbyid, поскольку изначально div где лежит форма имеет свойство display:none.

--------
Пока писал пост, в голову пришла мысль что проблема может быть в в повторяющихся id а не в display:none, поскольку при создании модального окна html копируется...

Как посоветуете решить проблему ?
Ответить с цитированием
  #2 (permalink)  
Старый 08.08.2012, 22:09
Аспирант
Отправить личное сообщение для mullih Посмотреть профиль Найти все сообщения от mullih
 
Регистрация: 05.08.2012
Сообщений: 77

очистить или изменить id
Ответить с цитированием
  #3 (permalink)  
Старый 08.08.2012, 22:10
Аспирант
Отправить личное сообщение для mullih Посмотреть профиль Найти все сообщения от mullih
 
Регистрация: 05.08.2012
Сообщений: 77

да и зачем вам id в форме в таком случае, name за глаза
Ответить с цитированием
  #4 (permalink)  
Старый 08.08.2012, 22:24
Интересующийся
Отправить личное сообщение для lol4eg Посмотреть профиль Найти все сообщения от lol4eg
 
Регистрация: 06.04.2010
Сообщений: 17

var keystring;
        keystring = document.getElementsByName('keystring').value;
        alert(keystring);

пробую таким вот образом получить значение, пишет undefined, блоки побывал по разному размещать, и выше и ниже этого Js
Ответить с цитированием
  #5 (permalink)  
Старый 08.08.2012, 22:33
Аспирант
Отправить личное сообщение для mullih Посмотреть профиль Найти все сообщения от mullih
 
Регистрация: 05.08.2012
Сообщений: 77

может этот пример вас подвигнет на идеи ))

<!--	<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.js"></script>
-->
<html>
<head>
</head>
<body>
	<div id="mainframe">
		<div class="content">
			<h2>
				Смена пароля.</h2>
			<form>
			<p>
				<b>Ваш логин:</b><br>
				<input name="login" type="text" size="40">
			</p>
			<p>
				<b>Новый пароль:</b><br>
				<input id="pas1" name="password" type="text" size="40">
				<input id="pas2" name="password" type="text" size="40">
			</p>
			<p>
				<input type="submit" value="Изменить">
				<input type="button" onclick='return show();' value="что у нас там">
			</p>
			</form>
		</div>
	</div>
	<script type="text/javascript">
		function show() {
			var keystring;
			keystring = document.getElementsByName('password');
			for (var i = 0; i < keystring.length; i++)
				alert(keystring[i].value);
		}
	</script>
</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 09.08.2012, 00:28
Интересующийся
Отправить личное сообщение для lol4eg Посмотреть профиль Найти все сообщения от lol4eg
 
Регистрация: 06.04.2010
Сообщений: 17

mullih, навело, помогло, спасибо Действительно была проблема из за клонирования формы.
Ответить с цитированием
  #7 (permalink)  
Старый 09.08.2012, 11:04
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от lol4eg
keystring = document.getElementsByName('keystring').value;
коллекции - это типа "живых" массивов, поэтому обращение к самим элементам по их индексам в коллекции([0] и т.п.), getElementsByName, getElementsByTagName - коллекции (в данном случае можно догадаться по Elements - мн.число), getElementById - ссылка на сам элемент (не коллекция), поэтому [] не нужно.


mullih, тут есть кнопочка посмотреть [html run] и keystring.length вычисляется каждый раз, поэтому лучше вынести в отдельную переменную.
И первая строчка, чтоб не забыть?
эту проще запомнить http://code.jquery.com/jquery-latest.min.js, хотя и ту не сложно
Ответить с цитированием
  #8 (permalink)  
Старый 09.08.2012, 11:18
Аспирант
Отправить личное сообщение для mullih Посмотреть профиль Найти все сообщения от mullih
 
Регистрация: 05.08.2012
Сообщений: 77

Сообщение от bes Посмотреть сообщение
коллекции - это типа "живых" массивов, поэтому обращение к самим элементам по их индексам в коллекции([0] и т.п.), getElementsByName, getElementsByTagName - коллекции (в данном случае можно догадаться по Elements - мн.число), getElementById - ссылка на сам элемент (не коллекция), поэтому [] не нужно.


mullih, тут есть кнопочка посмотреть [html run] и keystring.length вычисляется каждый раз, поэтому лучше вынести в отдельную переменную.
И первая строчка, чтоб не забыть?
эту проще запомнить http://code.jquery.com/jquery-latest.min.js, хотя и ту не сложно
спс, за замечания, согласен полность, а вот всегда использовать последнюю библиотеку не советую, простой пример последний, пока jquery-mobile шел от 1 до 1.1 то поменял пару методов без поддержки предыдущей версии
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Таймер отсчета времени с кнопками denisich84 Работа 10 16.02.2012 16:25
Проблема при воспроизведении аудио при использовании jplayer nemish Events/DOM/Window 0 01.12.2011 16:15
getAllResponseHeaders() и status имеют смысл только при readyState==4? mister_maxim AJAX и COMET 7 27.03.2011 19:08
Изменение стиля родительского элемента при :hover дочернего lanzs Элементы интерфейса 2 16.10.2010 13:28
"Подарок" от IE при работе с getElementById Snipe Internet Explorer 1 10.11.2008 18:18