Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: как можно получить имена всех элементов поля?
 
 автор: servannin   (09.09.2005 в 17:46)   письмо автору
 
 

как можно получить имена всех элементов поля в массиве?
идея такова:

<html>
<head>
<script>
function ShowCalendar1() {
a=document.getElementsByTagName('input').getAttribute('name');
}
</script>
</head>
<body>
<input type="button" onclick="ShowCalendar1()">
<input type="text" name="qwe" id="periodEnd"><br>
<input type="button" onclick="ShowCalendar1()">
<input type="text" name="rty" id="periodStart"><br>
<input type="button" onclick="ShowCalendar1()">
<input type="text" name="rty" id="periodStart"><br>
</body>
</html>

при вызове одной функции ?

   
 
 автор: Crux   (09.09.2005 в 17:53)   письмо автору
 
   для: servannin   (09.09.2005 в 17:46)
 

собственно вот

function ShowCalendar1() { 
a=document.getElementsByTagName('input')[1].getAttribute('name'); 
alert(a)

   
 
 автор: servannin   (09.09.2005 в 18:02)   письмо автору
 
   для: Crux   (09.09.2005 в 17:53)
 

спасибо за идею,но
а если так:

<html> 
<head> 
<script> 
function ShowCalendar1() { 
for(i=0;i<=2;i++){
a=document.getElementsByTagName('input')[i].getAttribute('name'); 
alert(a) }
}  
</script> 
</head> 
<body> 
<input type="text" name="qwe" id="periodEnd"><br> 
<input type="text" name="rty" id="periodStart"><br> 
<input type="text" name="uio" id="periodStart"><br> 
<input type="button" onclick="ShowCalendar1()"> 
</body> 
</html>

как в цикле вместо 2 получить число элементов на форме?

   
 
 автор: Crux   (09.09.2005 в 18:04)   письмо автору
 
   для: servannin   (09.09.2005 в 18:02)
 


document.getElementsByTagName('input').length

   
 
 автор: servannin   (09.09.2005 в 18:13)   письмо автору
 
   для: Crux   (09.09.2005 в 18:04)
 

а чё за ошибка в конце ?

<html> 
<head> 
<script> 
function ShowCalendar1() { 
for(i=0;i<=document.getElementsByTagName('input').length;i++){
a=document.getElementsByTagName('input')[i].getAttribute('name'); 
alert(a);
}
/*if(a='qwe'){
alert("ok qwe");
}else
alert("ok rty");*/
}
</script> 
</head> 
<body> 
<input type="text" name="qwe" id="periodEnd"><br> 
<input type="text" name="rty" id="periodStart"><br> 
<input type="button" name="q" onclick="ShowCalendar1()"> 
</body> 
</html>

   
 
 автор: Crux   (09.09.2005 в 18:23)   письмо автору
 
   для: servannin   (09.09.2005 в 18:13)
 


for(i=0;i<document.getElementsByTagName('input').length;i++)

   
 
 автор: servannin   (09.09.2005 в 18:52)   письмо автору
 
   для: Crux   (09.09.2005 в 18:23)
 

спасибо за помощь! :)

   
 
 автор: servannin   (09.09.2005 в 19:54)   письмо автору
 
   для: servannin   (09.09.2005 в 18:52)
 

ещё вопросик ...
допустим,есть на форме 2 текстовых поля для ввода даты и около каждой ссылка-рисунок,при клике на которую открывается календарь,если дата соответствует формату.
при вводе даты в первое поле и при клике на ссылку-картинку, вызывается ф-ция,проверяющая формат введённой даты на правильность,если она верна,то вызывается ещё одна функция,генерирующая календарь, а если дата не верна,то ошибка.
при вводе даты во второе поле и при клике на ссылку-картинку,вызывается та же функция и происходит то же самое.
но если дата не верна в одном поле,но верна в другом,то выскакивает ошибка(которая и должна выскочить) но и открывается календарь для другого поля...
если обе даты верны,то при клике на любую ссылку-картинку открывается 2 календаря.
Текстовые поля имеют разные имена,айдишники,значения,но вызывают одни и те же функции.Ссылка картинка,что для первого,что для второго поля - абсолютно одинаковы.И так должно быть.
Что посоветуете сделать,чтобы описанное выше не происходило ?

   
 
 автор: Crux   (09.09.2005 в 20:01)   письмо автору
 
   для: servannin   (09.09.2005 в 19:54)
 

а можно как-нибудь попроще объяснить, а то я пока дочитаю до конца забываю что было в начале

   
 
 автор: servannin   (09.09.2005 в 23:23)   письмо автору
 
   для: Crux   (09.09.2005 в 20:01)
 

думаю теперь понятно:

<html>
<head>
<script language="JavaScript">
function check(){
mystart=document.getElementById('start').value;
    if(proverka(mystart)){
    showcalendar(mystart);
    }else{
    alert('mistake');
    }
myend=document.getElementById('end').value;
    if(proverka(myend)){
    showcalendar(myend);
    }else{
    alert('mistake');
    }
function proverka(param)
{...
//proverka formata vvoda
...
}
function showcalendar(param1)
{...
//risuem calendar
...
}
}
</script>
</head>
<body>
<input type="text" name="start" id="start"><a href="#" onclick="check()"><img width="20" height="20" src="#"></a><br>
<input type="text" name="end" id="end"><a href="#" onclick="check()"><img width="20" height="20" src="#"></a>
</body>
</html>



html-код изменять нельзя!!!эта страница генерируется из JSP.
то есть сейчас ,если в одном поле введено верное значение, а в другом неверное ,то при клике на картинку-ссылку выскочит ошибка и вызовется календарь для другого поля.Также ,если оба значения верны,нажимаем любую ссылку-картинку,должен выскакивать календарь.Но их появляется 2.
Это понятно почему так происходит,но как это исправить...??не изменяя html-код!

   
 
 автор: Crux   (10.09.2005 в 11:01)   письмо автору
 
   для: servannin   (09.09.2005 в 23:23)
 

всё равно не понятно
1. когда оба значения введены неверно, должно выскочить две ошибки?
2. если только одно значение неправильно, что должно появиться?
3. если всё верно, то появиться должен только один календарь?

   
 
 автор: servannin   (10.09.2005 в 12:23)   письмо автору
 
   для: Crux   (10.09.2005 в 11:01)
 

1). нет,смотря на какую ссылку-картинку мы нажмём,для того поля и должна выскочить,а сейчас выскакивает для 2х;
2).ошибка для поля,в котором значение не верно и больше ничего;
3).да один

   
 
 автор: Crux   (10.09.2005 в 14:28)   письмо автору
 
   для: servannin   (10.09.2005 в 12:23)
 

хм... не меняя структуру HTML сложно что-то придумать...

проблема заключается в том, что сложно определить на какую именно мы нажали картинку-ссылку, был бы хоть айдишник у картинки
или при вызове функции check() передовалась переменная связывающая с нужным нам полем...

я подумаю, но с учётом того кода что Вы предоставили положительный результат не гарантирую.

   
 
 автор: Crux   (10.09.2005 в 15:06)   письмо автору
 
   для: servannin   (10.09.2005 в 12:23)
 

3. а календарь для какого значения должен появиться strat или end,
т.е.в ф-цию showcalendar() что должно передоваться?

   
 
 автор: Crux   (10.09.2005 в 15:21)   письмо автору
 
   для: servannin   (10.09.2005 в 12:23)
 

вот что я тут навоял

<html> 
<head> 
<script language="JavaScript"> 
function check(){ 
var val = event.srcElement.parentNode.previousSibling.getAttribute('value')
    if(proverka(val)){ 
    showcalendar(val); 
    }else{ 
    alert('error'); 
    }  
}
function proverka(param) 
{
if (!param) return false
    else return true

function showcalendar(param1) 
{
alert("calendar for "+param1)


</script> 
</head> 
<body> 
<input type="text" name="start" id="start"><a href="#" onclick="check()"><img width="20" height="20" src="#"></a><br> 
<input type="text" name="end" id="end"><a href="#" onclick="check()"><img width="20" height="20" src="#"></a> 
</body> 
</html>

работает это так:
после нажатия на картинку-ссылку обрабатывается только одно текстовое поле.
т.е. если мы нажмем на картинку поля START функция check() проверет на правильность ввода и выдаст сообщение об ошибке или же появится календарь (в данном случае для поля START).
при этом на поле END вообще внимание не обращается.
ну и соответственно также всё работает если нажать картинку-ссылку для поля END.

особенность данного скрипта заключается в том что HTML должен быть именно таким как Вы предоставили.
т.е. тэги INPUT A IMG должны идти строго друг за другом, иначе всё это работать не будет.

   
 
 автор: servannin   (10.09.2005 в 19:52)   письмо автору
 
   для: Crux   (10.09.2005 в 15:21)
 

Crux, огромное спасибо,это то, что нужно !!!
Я к этому стремился почти весь рабочий день в пятницу ... куча вариантов было перепробовано,но всё напрасно...просто работаю со многими языками сразу, т.е. глубоко не знаю ни одного языка....
Вы мне очень помогли :)
Ещё раз спасибо !

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования