2013-02-11 3 views
0

Я пытаюсь автоматическое обновление ячейки таблицы на основе изменений в другой ячейке таблицы. Пользователь имеет имя, фамилию и имя пользователя. Имя пользователя состоит из первого начального + последнего. Мой текущий код:Ячейка таблицы автоматического обновления на основе ввода пользователем в Javascript

<html> 
    <head> 
    <script type = "text/javascript"> 
     function updateUsername(){ 
     var firstname = document.getElementById("tdFirstname").firstChild.firstChild.nodeValue; 
     var lastname = document.getElementById("tdLastname").firstChild.firstChild.nodeValue; 
     var username = document.getElementById("tdUsername").innerHTML = firstname + lastname; 
     } 
    </script> 
    </head> 
    <body> 
    <table id = 'confirm'> 
     <tr> 
     <th>Firstname</th> 
     <td id = 'tdFirstname'> 
      <div onkeypress = 'updateUsername()' contentEditable> 
      Johnny 
      </div> 
     </td> 
     </tr> 
     <tr> 
     <th>Lastname</th> 
     <td id = 'tdLastname'> 
      <div onkeypress = 'updateUsername()' contentEditable> 
      Sppleseed 
      </div> 
     </td> 
     </tr> 
     <tr> 
     <th>Username</th> 
     <td id = 'tdUsername'> 
      JSPPLESEED 
     </td> 
     </tr> 
    </table> 
    </body> 
</html> 

код работает (только помещая имя и фамилию вместе, не worred о первой начально пока), но одна буква позади. Он не обновляется после ввода нового символа, то есть, если я обновляю lastname до Appleseed (как и должно быть), просто изменение одной буквы не имеет эффекта (имя пользователя остается Sppleseed), но при нажатии второго ключа оно будет перейдем к Appleseed. Это что-то не так с моим кодом? или я пропустил что-то, что мне нужно было бы обновить после ввода/удаления нового символа. Это очень расстраивает.

ответ

0

Попробуйте использовать onkeyup вместо onkeypress.

Событие Keyup запускается «когда пользователь отпускает ключ после того, как действие по умолчанию этого ключа было выполнено».

http://www.quirksmode.org/dom/events/keys.html

+0

Гениальный! Прекрасно работает! – Vince