Проблема с getElementsByName - Help!
И снова здравствуйте)
Столкнулся с проблемой, не работает getElementsByName, а реализовать по средствам getElementById структура сайта не позволяет. Подскажите плиз, что я делаю не так ? <html> <head> <script type="text/javascript"> function logIn() { var l = document.getElementsByName("login"); var p = document.getElementsByName("pass"); if ((l.value=="") || (p.value=="")) {alert("Заполните поля.");return false;} else {alert("Ошибка.");return false;} } </script> </head> <body> <input id="login" name="login" type="text"> <input id="pass" name="pass" type="password"> <input type="button" value="Login" onclick="logIn()"> </body> </html> т.е. мне нужно привязать функцию проверки заполнения полей по средствам getElementsByName, это легко можно сделать с помощью getElementById но мне этот вариант не подходит, нужна привязка к name="login" и name="pass" Подскажите что я делаю не так ? |
var l = document.getElementsByName("login")*!*[0]*/!*; var p = document.getElementsByName("pass")*!*[0]*/!*; |
Цитата:
Только не совсем понятно что такое [0] ? |
Цитата:
без индекса, в данном случае нуля, вернётся не элемент а вся колекция (типа масив) элементов содержащих соответсвующий атрибут name. |
Цитата:
Видимо это из-за номера элемента, я ставлю [0] Как узнать или посчитать какой именно это номер элемента чтоб в [] указать правильную цифру ? |
Цитата:
|
А что не работает?
<!DOCTYPE HTML> <html lang="ru"> <head> <meta charset="UTF-8"/> <title></title> <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> <input id="login" name="login" type="text"> <input id="pass" name="pass" type="password"> <input type="button" value="Login" onclick="logIn()"> </body> </html> |
Цитата:
Вот я открываю свой шаблон смотрю на код, как мне определить какой номер элемента в DOM модели ? П.С. Сорри за туфтографию =) |
а почему тебе не позваляет использовать getElementById структура, если у тебя вполне нормально указаны id="login" и id="pass" ??? Что за стопор у тебя???
Честно, не вижу никакой загвоздки |
Цитата:
Цитата:
|
Цитата:
Цитата:
|
Цитата:
|
Цитата:
Их так нужно считать ? Опишите подробнее плиз этот момент. <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> Цитата:
ЗЫ: Люди прошу не задавайте массу вопросов не по теме, а помогите кто может, заранее спасибо. |
А почему имена разные? Вам возвращается список всех элементов с именем login. У вас такой на странице один и доступен по [0]. login1 это другое имя.
Используйте сложные имена и идентификация упростится. |
Цитата:
<input id = "<?php echo $dynamic_id; ?>" /> <script type = "text/javascript"> var id = "<?php echo $dynamic_id; ?>"; var input = document.getElementById(id); </script> |
Цитата:
|
Соглашусь с poorking - передай значение ID в JS и используй getElementsById
|
Цитата:
Можно живой пример в HTML ? Дабы посмотреть как работает. |
тип вот так:
<?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, время: 04:13. |