мне надо выбрать нумерацию тех тегов input которые имеют имя user и password
вот код, но не пашет, почему?
<script language="JavaScript">
var us = getElementsByTagName("input");
for( var i =0; i <us.length; i++)
{
var ok = getElementsByTagName("input")[i].name;
if(ok == "user")
{var login = i;}
elseif(ok == "password")
{var pass = i;}
}
alert(login+pass);
</script>
Спустя 24 минуты, 18 секунд (9.01.2012 - 00:08) Игорь_Vasinsky написал(а):
Цитата |
us.length |
может я торможу, но в us - ты получил объект, а не сосчитал кол-во инпутов.
и потом - сам скрипт должен находиться ниже самой цели.
а какие ошибки?? что firebug говорит???
Спустя 10 минут, 26 секунд (9.01.2012 - 00:18) qaz333 написал(а):
Цитата (Игорь_Vasinsky @ 8.01.2012 - 21:08) | ||
может я торможу, но в us - ты получил объект, а не сосчитал кол-во инпутов. и потом - сам скрипт должен находиться ниже самой цели. а какие ошибки?? что firebug говорит??? |
я в джаваскрипт неочень,
но насколько я понимаю в us я должен был получить массив со всеми найдеными input
ошибок нет, просто алерт не появляется, firebug не пользуюсь, не знал про такое
Спустя 31 минута, 49 секунд (9.01.2012 - 00:50) Игорь_Vasinsky написал(а):
я..сам загнался.. массив есть. вот код. анализируй. считает кол-во инпутов с именем user и password
<script language="JavaScript">
var us = document.getElementsByTagName("input");
var u = 0;
var p = 0;
for( var i =0; i <us.length; i++)
{
var ok = us[i].name;
if(ok == "user")
{
u++;
}
else if(ok == "password")
{
p++;
}
}
alert('name=user:'+u+'\nname=password:'+p);
</script>
Спустя 52 секунды (9.01.2012 - 00:51) Игорь_Vasinsky написал(а):
порядковый номер инпута в DOM читай в i в условии при совпадении имени
Спустя 23 минуты, 53 секунды (9.01.2012 - 01:15) Игорь_Vasinsky написал(а):
ну вообщем вот
если нужны для дальнейшей работы с ними - то parseInt(i+1) - замени на i - т.к. в массиве считается с нуля.
<script language="JavaScript">
var us = document.getElementsByTagName("input");
var u = 0;
var p = 0;
var numbU = '';
var numbP = '';
for( var i =0; i <us.length; i++)
{
var ok = us[i].name;
if(ok == "user")
{
numbU+= ' '+parseInt(i+1);
u++;
}
else if(ok == "password")
{
numbP+= ' '+parseInt(i+1);
p++;
}
}
alert('name=user:'+u+' -'+numbU+'\nname=password:'+p+' -'+numbP);
</script>
если нужны для дальнейшей работы с ними - то parseInt(i+1) - замени на i - т.к. в массиве считается с нуля.
Спустя 21 секунда (9.01.2012 - 01:15) redreem написал(а):
вообще говоря условие задачи надо уточнить.
1. раз инпуты в формах, значит надо сначала брать все формы, а уже в них искать инпуты. приведеные пример заберут только корневые инпуты.
2. в разных формах могут встретиться свои инпуты с юзер и пассворд?
3. если да, то что нужно? сформировать для каждой формы индексы инпутов или найты первую форму с такими инпутами их индексы?
1. раз инпуты в формах, значит надо сначала брать все формы, а уже в них искать инпуты. приведеные пример заберут только корневые инпуты.
2. в разных формах могут встретиться свои инпуты с юзер и пассворд?
3. если да, то что нужно? сформировать для каждой формы индексы инпутов или найты первую форму с такими инпутами их индексы?
Спустя 5 минут, 19 секунд (9.01.2012 - 01:20) Игорь_Vasinsky написал(а):
как я понял - на странице где дохера фформ - нужно получить порядковые номера инпутов с указзаными именами.
Спустя 10 минут, 50 секунд (9.01.2012 - 01:31) redreem написал(а):
ну незнаю, ТС виднее :)
вот вариант поиска первой формы и нужных инпутов:
вот вариант поиска первой формы и нужных инпутов:
var frm = document.getElementsByTagName('form');
var frmInd = false;
var inpInd = new Array();
inpInd['user'] = false;
inpInd['password'] = false;
for (var f = 0;f < frm.length;f++) {
var inp = frm[f].getElementsByTagName('input');
for (var d in inpInd) {
for (var i = 0;i < inp.length;i++) if (inp[i].name == d) {inpInd[d] = i;break;}
}
if ((inpInd['user'] !== false) && (inpInd['password'] !== false)) {frmInd = f;break;}
}
if (frmInd !== false) alert('Индекс инпута с user: '+inpInd['user']+' Индекс инпута с password: '+inpInd['password']+' в форме с индексом: '+frmInd); else alert('Пусто.');
Спустя 1 день, 10 часов, 11 минут, 17 секунд (10.01.2012 - 11:43) qaz333 написал(а):
Цитата (Игорь_Vasinsky @ 8.01.2012 - 22:15) |
ну вообщем вот
если нужны для дальнейшей работы с ними - то parseInt(i+1) - замени на i - т.к. в массиве считается с нуля. |
о, етот код подошол, спасибо)
Спустя 46 секунд (10.01.2012 - 11:43) Игорь_Vasinsky написал(а):
вот и хорошо.