Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Проблема с getElementsByName - Help! (https://javascript.ru/forum/dom-window/25624-problema-s-getelementsbyname-help.html)

Seva1986 12.02.2012 17:20

Цитата:

Сообщение от lamer
Вопрос остается, подскажите плиз как определить номер элемента в DOM модели ?

Я ведь написал
Цитата:

Сообщение от Seva1986
в дом модели с верху документа по порядку. только не все подряд а только те что с неймом нужным.


dmitriymar 12.02.2012 17:46

Цитата:

Сообщение от lamer
средствам getElementById структура сайта не позволяет

id одинаковые чтоль?:blink: id должен быть уникальным

lamer 14.02.2012 04:07

Цитата:

Сообщение от Seva1986 (Сообщение 156953)
Я ведь написал
в дом модели с верху документа по порядку. только не все подряд а только те что с неймом нужным.

Я пробовал брать шаблон и с верху вниз считать по порядку те что с наме, в итоге не чего не работало.
Их так нужно считать ? Опишите подробнее плиз этот момент.

<html>

<head>
<script type="text/javascript">
function logIn() {
var l = document.getElementsByName("login")[0];
var p = document.getElementsByName("pass")[0];
if ((l.value=="") || (p.value==""))
{alert("Заполните поля.");return false;}
else
{alert("Ошибка.");return false;}
}
</script>
</head>

<body>
</br>
<input id="login1" name="login1" type="text">
<input id="pass1" name="pass1" type="password">
</br>
<input id="login2" name="login2" type="text">
<input id="pass2" name="pass2" type="password">
</br>
<input id="login3" name="login3" type="text">
<input id="pass3" name="pass3" type="password">
</br>
<input id="login4" name="login4" type="text">
<input id="pass4" name="pass4" type="password">
</br>
<input id="login" name="login" type="text">				<! Где бы я не ставил все равно скрипт работает с параметром [0] >
<input id="pass" name="pass" type="password">			<! Хотя неймов тут много>
<input type="button" value="Login" onclick="logIn()">
</body>

</html>


Цитата:

Сообщение от dmitriymar (Сообщение 156959)
id одинаковые чтоль?:blink: id должен быть уникальным

id в шаблоне идут уникальные, просто они не постоянные, а генерируются скриптом, т.е. обновил страницу id формы стал таким: id="Hgy:07HJbff" затем ещё рас обновил id стал таким: id="Hiubm:05gb" и т.д. они не постоянные а генерируются скриптом.

ЗЫ: Люди прошу не задавайте массу вопросов не по теме, а помогите кто может, заранее спасибо.

GuardCat 14.02.2012 14:01

А почему имена разные? Вам возвращается список всех элементов с именем login. У вас такой на странице один и доступен по [0]. login1 это другое имя.

Используйте сложные имена и идентификация упростится.

poorking 14.02.2012 14:09

Цитата:

Сообщение от lamer
т.е. обновил страницу id формы стал таким: id="Hgy:07HJbff" затем ещё рас обновил id стал таким: id="Hiubm:05gb" и т.д.

Ну так сделайте
<input id = "<?php echo $dynamic_id; ?>" />

<script type = "text/javascript">
   var id = "<?php echo $dynamic_id; ?>";
   var input = document.getElementById(id);
</script>

Seva1986 14.02.2012 16:35

Цитата:

Сообщение от lamer
Опишите подробнее плиз этот момент.

ну в даном примере у всех неймов индекс [0] потому что все неймы разные

KingStar 14.03.2012 16:12

Соглашусь с poorking - передай значение ID в JS и используй getElementsById

lamer 16.03.2012 01:48

Цитата:

Сообщение от KingStar (Сообщение 163123)
Соглашусь с poorking - передай значение ID в JS и используй getElementsById

Да честно говоря не совсем ясно как реализовать.
Можно живой пример в HTML ?
Дабы посмотреть как работает.

KingStar 21.03.2012 13:34

тип вот так:

<?php

echo "<input type='text' id='".$gen_login."' name='login' />";
echo "<input type='text' id='".$gen_password."' name='password' />";


echo "<script type='text/javascript'>

var id_login = '".$gen_login."';
var id_password = '".$gen_password."';

var input_login = document.getElementById(id_login);
var input_password = document.getElementById(id_password);


alert(input_login+' - '+input_password);


</script>";


?>


JS повесить на событие, и будет тебе счастье

работоспособность не проверял, писал на вскидку


Часовой пояс GMT +3, время: 18:48.