Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

JavaScript - доступ к элементу

36K
28 июля 2008 года
vova13
2 / / 27.03.2008
Есть элементы типа:
Цитата:
<input type="text" size="20" name="cbo_1" value="">
<input type="text" size="20" name="cbo_2" value="">
<input type="text" size="20" name="cbo_3" value="">
...
<input type="text" size="20" name="cbo_n" value="">



Нужно получить к ним доступ из цикла:

Цитата:
for(var j=1; j<c.length; j++){ //где c[0] =1, c[1] = 2, ... c[n] = n
kt = document.getElementByName('cbo_' + c[j]); // похоже тут проблема

if(kt.value == '' || kt.value == null) alert('Field is empty!');
}



Подозреваю что проблема тут: kt = document.getElementByName('cbo_' + c[j])
Но как тогда получить доступ к этим элементам по имени?

1.9K
28 июля 2008 года
max_dark
256 / / 11.11.2005
Я не знаток WEB-програмирования, но на сколько я знаю document.getElementByName() нет, а есть document.getElementById()
Код:
<html>
<head>
<script type='text/javascript'>
function onbtnclick() {
    var c=new Array(1,2,3,4);
    var objName='';
    var kt=null;
    for(var j=0; j<c.length; j++){ // нумерация с нуля
        objName='cbo_'+c[j];
        kt = document.getElementById(objName);
        if(kt.value == '' || kt.value == null)
            alert('Field is empty!');
    }
}
</script>
</head>
<body>
<input type="text" size="20" name="cbo_1" id="cbo_1" value="">
<input type="text" size="20" name="cbo_2" id="cbo_2" value="">
<input type="text" size="20" name="cbo_3" id="cbo_3" value="">
<input type="text" size="20" name="cbo_4" id="cbo_4" value="">
<input type=button value='Click Me!' &#111;&#110;click='onbtnclick()'>
</body>
<html>
244
28 июля 2008 года
UAS
2.0K / / 19.07.2006
Ну вообще по логике input должны быть в form - теге. Так что можно просто на DOM0 обращаться, как document.forms[0].input[n]. (Хотя могу ошибиться сейчас в синтаксисе).
Или элементарно document.getElementsByTagName("input");
Ну вот по этим функциям - в документацию.

Ну или вот пример, первая ссылка из гугла:
http://www.esqsoft.com/javascript-help/document-getElementsByTagName.htm

Т.е. в вашем случае:
 
Код:
// код с вашими инпутами такой же, как и в посте
inputs = document.getElementsByTagName("input");
for(i=0;i<inputs.length;i++) {
    needle_name = "cbo_"+i;
    if( !inputs.name.match(/needle_name/) ) continue;
    if(inputs.value == '' || inputs.value == null) alert('Field is empty!');
}

Воть.. Код не проверял, но логика думаю понятна. Может где и не верно, так как не сильно силен в JS
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог