<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!' onclick='onbtnclick()'>
</body>
<html>
JavaScript - доступ к элементу
Цитата:
<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="">
<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]); // похоже тут проблема
if(kt.value == '' || kt.value == null) alert('Field is empty!');
}
Подозреваю что проблема тут: kt = document.getElementByName('cbo_' + c[j])
Но как тогда получить доступ к этим элементам по имени?
Я не знаток WEB-програмирования, но на сколько я знаю document.getElementByName() нет, а есть document.getElementById()
Или элементарно 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!');
}
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