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, время: 14:01. |