|
|
|
| как можно получить имена всех элементов поля в массиве?
идея такова:
<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>
|
при вызове одной функции ? | |
|
|
|
|
|
|
|
для: servannin
(09.09.2005 в 17:46)
| | собственно вот
function ShowCalendar1() {
a=document.getElementsByTagName('input')[1].getAttribute('name');
alert(a)
}
|
| |
|
|
|
|
|
|
|
для: 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 получить число элементов на форме? | |
|
|
|
|
|
|
|
для: servannin
(09.09.2005 в 18:02)
| |
document.getElementsByTagName('input').length
|
| |
|
|
|
|
|
|
|
для: 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>
|
| |
|
|
|
|
|
|
|
для: servannin
(09.09.2005 в 18:13)
| |
for(i=0;i<document.getElementsByTagName('input').length;i++)
|
| |
|
|
|
|
|
|
|
для: Crux
(09.09.2005 в 18:23)
| | спасибо за помощь! :) | |
|
|
|
|
|
|
|
для: servannin
(09.09.2005 в 18:52)
| | ещё вопросик ...
допустим,есть на форме 2 текстовых поля для ввода даты и около каждой ссылка-рисунок,при клике на которую открывается календарь,если дата соответствует формату.
при вводе даты в первое поле и при клике на ссылку-картинку, вызывается ф-ция,проверяющая формат введённой даты на правильность,если она верна,то вызывается ещё одна функция,генерирующая календарь, а если дата не верна,то ошибка.
при вводе даты во второе поле и при клике на ссылку-картинку,вызывается та же функция и происходит то же самое.
но если дата не верна в одном поле,но верна в другом,то выскакивает ошибка(которая и должна выскочить) но и открывается календарь для другого поля...
если обе даты верны,то при клике на любую ссылку-картинку открывается 2 календаря.
Текстовые поля имеют разные имена,айдишники,значения,но вызывают одни и те же функции.Ссылка картинка,что для первого,что для второго поля - абсолютно одинаковы.И так должно быть.
Что посоветуете сделать,чтобы описанное выше не происходило ? | |
|
|
|
|
|
|
|
для: servannin
(09.09.2005 в 19:54)
| | а можно как-нибудь попроще объяснить, а то я пока дочитаю до конца забываю что было в начале | |
|
|
|
|
|
|
|
для: 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-код! | |
|
|
|
|
|
|
|
для: servannin
(09.09.2005 в 23:23)
| | всё равно не понятно
1. когда оба значения введены неверно, должно выскочить две ошибки?
2. если только одно значение неправильно, что должно появиться?
3. если всё верно, то появиться должен только один календарь? | |
|
|
|
|
|
|
|
для: Crux
(10.09.2005 в 11:01)
| | 1). нет,смотря на какую ссылку-картинку мы нажмём,для того поля и должна выскочить,а сейчас выскакивает для 2х;
2).ошибка для поля,в котором значение не верно и больше ничего;
3).да один | |
|
|
|
|
|
|
|
для: servannin
(10.09.2005 в 12:23)
| | хм... не меняя структуру HTML сложно что-то придумать...
проблема заключается в том, что сложно определить на какую именно мы нажали картинку-ссылку, был бы хоть айдишник у картинки
или при вызове функции check() передовалась переменная связывающая с нужным нам полем...
я подумаю, но с учётом того кода что Вы предоставили положительный результат не гарантирую. | |
|
|
|
|
|
|
|
для: servannin
(10.09.2005 в 12:23)
| | 3. а календарь для какого значения должен появиться strat или end,
т.е.в ф-цию showcalendar() что должно передоваться? | |
|
|
|
|
|
|
|
для: 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 должны идти строго друг за другом, иначе всё это работать не будет. | |
|
|
|
|
|
|
|
для: Crux
(10.09.2005 в 15:21)
| | Crux, огромное спасибо,это то, что нужно !!!
Я к этому стремился почти весь рабочий день в пятницу ... куча вариантов было перепробовано,но всё напрасно...просто работаю со многими языками сразу, т.е. глубоко не знаю ни одного языка....
Вы мне очень помогли :)
Ещё раз спасибо ! | |
|
|
|