Проблема с 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, время: 07:14. |