getElementById() не возвращает ссылку на елемент
Доброго времени суток.
только начинаю разбираться с javascript и вот возникла проблема. Есть страничка на сайте joomla в ней есть структура, которая состоит из вложенных табов и слайдеров. в каждом слайдере есть таблицы выводимые php скриптом
<?php
//переменные
$pricesArray = array("price1"=>1,"price2"=>1,"price3"=>1,"price4"=>1,"price5"=>1,"price6"=>1);
//cтили
echo '
<style type="text/css">
@import url("./myscrypts/local.css");
</style>
';
//Таблица
echo "<form name =\"ovs\" ><table class=\"price\" cellspacing=\"0\">";
//Названия групп колонок таблицы
echo "
<tr class=\"price\" >
<td class=\"price\" id=head>3</td>
<td class=\"price\" id=head colspan=\"3\">1</td>
</tr>
";
//Название колонок таблицы
echo "
<tr class=\"price\" >
<td class=\"price\" id=\"colname\" id=id=\"colname\"> 2</td>
<td class=\"price\" id=\"cost\" colspan=\"2\"></td>
<td class=\"price\" id=\"cost\">Количество(шт)</td>
</tr>
";
//1я строка таблицы
echo "
<tr class=\"price\" >
<td class=\"price\" id=\"colname\" id=id=\"colname\"> 1</td>
<td class=\"price\" id=\"cost\">".$pricesArray["price1"]."</td>
<td class=\"price\" id=\"cost\"><input id=\"btn1\" class=\"button\" type=\"button\" value=\"Добавить\" /><input id=\"btn7\" class=\"button\" type=\"button\" value=\"Убрать\"/></td>
<td class=\"price\" id=\"cost\"><input id=\"qty1\" type=\"text\" value=\"0\"/></td>
</tr>
";
// еще куча строк
echo'</table>
<input type="button" value="Посчитать" onclick="ovsFindSumm()" style="margin-top:10px;"/><input type="reset" value="Сбросить" onclick="ovsResetSumm()" style="margin-top:10px;"/>
<div id="finalCount" style="margin-left:5px;margin-top:6px;">Итого:</div>
</form>';?>
и собственно обрабатывается скриптом
<script language="javascript" type="text/javascript">
function ovsCheck(field)
{
var result = false;
var val;
if (field.value == ''){
alert('Как так, вы же ничего не ввели');
return result;
}
val = parseInt(field.value);
if (isNaN(val)){
alert('Не пытайтесь обмануть, это не число!');
return result;
}
if (val != field.value){
alert('Не пытайтесь обмануть, это не число!');
return false;
}
if (val < 0){
alert('Мы - за движение вперед! Введите положительное а не отрицательное число!');
return result;
}
result=true;
return result;
}
function ovsResetSumm()
{
document.ovs.getElementById('finalCount').innerHTML="Итого:";
}
function ovsFindSumm(){
var summ=0;
var prices = [<?php echo "{$pricesArray["price1"]},{$pricesArray["price2"]},{$pricesArray["price3"]},{$pricesArray["price4"]},{$pricesArray["price5"]},{$pricesArray["price6"]}";?>]
for( var i=0;i<6;i++)
{
var index=i+1;
var quant = document.ovs.getElementById('qty'+index);
summ+=prices[i]*Number(quant.value);
}
document.ovs.getElementById('finalCount').innerHTML="Итого: "+summ;
}
function ovsAddItem()
{
var index=0;
if(this.id=='btn1'){ index=1;}
if(this.id=='btn2'){ index=2;}
if(this.id=='btn3'){ index=3;}
if(this.id=='btn4'){ index=4;}
if(this.id=='btn5'){ index=5;}
if(this.id=='btn6'){ index=6;}
if(index>0&&index<7)
{
var quant = document.ovs.getElementById('qty'+index.toString());
var x=ovsCheck(quant);
if(x==true)
{
quant.value=Number(quant.value)+1;
}
}
}
function ovsDelItem()
{
var index=0;
if(this.id=='btn7'){ index=1;}
if(this.id=='btn8'){ index=2;}
if(this.id=='btn9'){ index=3;}
if(this.id=='btn10'){ index=4;}
if(this.id=='btn11'){ index=5;}
if(this.id=='btn12'){ index=6;}
if(index>0&&index<7)
{
var quant = document.ovs.getElementById('qty'+index.toString());
var x=ovsCheck(quant);
if(x==true&&Number(quant.value)>0)
{
quant.value=Number(quant.value)-1;
}
}
}
var buttonAdd1 = document.ovs.getElementById('btn1');
... еще пара подобных
var buttonDel1 = document.ovs.getElementById('btn7');
... еще пара подобных
buttonAdd1.onclick = ovsAddItem;
buttonDel1.onclick = ovsDelItem;
... еще пара подобных
</script>
Проблема заключается в том что есть точно такая же таблица в другом табе и обрабатывается точно также отличается все это дело именем формы вместо ovs -> om и определения функций начинаются соответственно с om. При попытке обратиться к элементам формы om путем var ombuttonAdd1 = document.om.getElementById('btn1'); функция не работает хотя если обращаться через document.om.elements[id_для_btn1].id то элемент виден. Не пойму в чем ошибка. Если возможно подскажите новичку :) |
document.getElementsByName('ovs')[0];
|
Цитата:
:) а то что то разум молчит, пойду у гугля спрошу |
при обращении к
<input id=\"btn1\" class=\"button\" type=\"button\" value=\"Добавить\" /> в форме c именем name="om" при помощи
document.om.getElementById('btn1') он же document.getElementsByName('om')[0].getElementById('btn1')
все равно выдает false; при попытке вывести alert(document.om.getElementById('btn1').id); выдает undefined :blink: Не ужели id кнопок должны быть уникальными для всего документа, а не только для области формы в которой они находятся?:-? |
Цитата:
|
Цитата:
исходя из того что я уже успел прочесть то в формах с разными именами по идее могут быть одинаковые id -__- вы говорите обратное, я запутался. |
id вообще никакого отношения к формам не имеет. id уникален во всём документе, а для обращения по нему нужно использовать document.getElementById.
Цитата:
|
Цитата:
P.S. Спасибо |
| Часовой пояс GMT +3, время: 13:00. |