Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > получить значение текстового поля


Автор: Samotnik 3.3.2008, 14:31
Добрый день, есть незамысловатый код
Код

var html = "<table style='width:" + w + "px;height:" + h + "px;border:0px solid;' cellspacing='0' cellpadding='0'>" +
               "<tr>" +
                    "<td align='center'  colspan='2'>" +
                         "<div class='sf_input' style='width:" + w + "px;height:" + Math.max(h - 20, 0) + "px;overflow-x:hidden;overflow-y:scroll;'>" + 
                         "<table style='width:"+ (w - 20) +"px' cellspacing='0' cellpadding='0'></table>" +
                      "</div>"+
                    "</td>" +
               "</tr>" +
               "<tr style='height:20px;'>" +
                    "<td> Description </td>" +
                    "<td style='width:100%'><input type=\'text\' readonly=\"readonly\"/></td>" +
               "</tr>" +
               "</table>";
    this.parentNode.innerHTML = html;

Нужно получить значение  из  Description input type     Пишу так
this.description = this.parentNode.childNodes[0]
Получаю 
object HTMLTableElement  
А мне нужно получить
object HTMLInputElement

Автор: Samotnik 3.3.2008, 14:58
Блин, чет ваще никак  не получается   smile 
пишу 
Код

this.description = this.parentNode.childNodes[1];

Alert   выдает    undefined    smile 
Подскажите пажалста, Как  мне получить 
object HTMLInputElement
??
 smile 

Автор: Sardar 3.3.2008, 14:58
.getElementsByTagName('input')[0].value

this.parentNode - нода куда ты вставил свой HTML, там всего один элемент - таблица. Теперь хорошо подумай почему ты получил такие результаты.

Автор: Samotnik 3.3.2008, 15:03
Пасибо !!
Цитата(Sardar @  3.3.2008,  14:58 Найти цитируемый пост)
 Теперь хорошо подумай почему ты получил такие результаты.

Подскажите плз,  где можно прочитать про всю  эту  иерархию   с  нодами ???    Чтоб  понятно стало...    Как в этом коде ?? 


Автор: Sardar 3.3.2008, 15:15
http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/.

Автор: Samotnik 3.3.2008, 15:18
Sardar,  пасибо лобьшое,  тока я  наверное не понял    smile 
написал так
Код

 var description = this.getElementsByTagName('input')[0].value;
    alert("Hello WOrld !!");
    alert("description " + description);

и чето вообще  ничего не выводится  smile     Даже  хелло ворлд   smile 
Можете  обьяснить, где я не прав ?
 smile 

Автор: Sardar 3.3.2008, 15:24
В консоли будет ошибка, попытка обратиться к null.value.
.getElementsByTagName('input') - соберёт все input'ы в поддереве, [0] - возмёт первый, .value - поле этого input'а
Вставляешь вёрстку ты в this.parentNode, тем самым удаляя себя из дерева. Почему же ты тогда обращаешься к себе, а не к .parentNode?

Автор: Samotnik 3.3.2008, 15:53
Sardar,   ОГРОМАДНЕЙШЕЕ!!!!   
МЕЖГАЛЛАКТИЧЕСКОЕ  СПАСИБО !!!!   smile   smile 
 smile  smile  smile  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)