別のテーブル セルの変更に基づいてテーブル セルを自動更新しようとしています。ユーザーには、名、姓、およびユーザー名があります。ユーザー名は、最初のイニシャル + 姓で構成されます。私の現在のコードは次のとおりです。
<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>
コードは機能しますが (最初のイニシャルについてはまだ心配していません)、1 文字遅れています。新しい文字が入力された後は更新されません。つまり、姓をAppleseedに更新した場合(そうあるべきです)、1文字を変更しても効果はありません(ユーザー名はSppleseedのままです)が、2番目のキーを押すと、アップルシードに変更。私のコードに何か問題がありますか?または、新しいキャラクターが入力/削除された後に更新する必要があるものを見逃していましたか. これは非常にイライラします。