2015-07-09 3 views
0

У меня есть кнопка редактирования, по щелчку каждый td в строке будет вводиться текст, в моем коде он работает, но проблема в том, что я не могу найти способ получить текст на входе, поэтому я могу сохранить его позже.Как получить текст из ввода

function Edit(clickedButton){ 
     var getTR = clickedButton.closest('tr'); 
     var getLength = getTR.childElementCount; 
     var getTds = getTR.querySelectorAll("td") 

     for (i in getTds) { 
      if(i < (getLength-1)) { 
       getTds[i].innerHTML = "<input type='text' value='"+getTds[i].innerHTML+"'>"; 
      }  
     } 

    } 
+1

Считаете ли вы использование атрибута 'contentEditable'? Это избавит вас от необходимости заменять/обновлять текстовые области или входы. https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_Editable – som

ответ

1

Получить его ид

document.getElementById('textbox_id').value 

или

Получить его классом

document.getElementsByClassName('class_name')[element_index].value

или получить его по имени тега

document.getElementsByTagName('tag_name')[whole_number].value 
0

В вашем теле цикла добавить прослушиватель событий к создаваемому ввода, например, связываются с blur события, чтобы сделать что-то со значением когда вход теряет фокус:

getTds[i].innerHTML = "<input type='text' value='"+getTds[i].innerHTML+"'>"; 
getTds[i].getElementsByTagName('input')[0].addEventListener('blur', function(){ 
    console.log(this.value); 
}) 

упрощенный пример: http://jsfiddle.net/Lr08emod/

Смежные вопросы