0

情報を収集するフォームを開発しています。私のコードでは、First Name テキスト ボックスが変更されると (onchange)、サブ ヘッダー ( <td>) に First Name が入力されるように設定されています。

なんらかの理由で、テキストが のに書き込まれることは<td>ありませんが、アラート メッセージを実行するとそこに表示されます。私は何を間違っていますか?idsubHeader

JavaScript (動作しません):

function FirstName_onchange() {
    var LastName = document.getElementById('LastName').value;
    var FirstName = document.getElementById('FirstName').value;
    document.getElementById('subHeader').value = FirstName + " " + LastName;
}

JavaScript (作品):

function FirstName_onchange() {
    var LastName = document.getElementById('LastName').value;
    var FirstName = document.getElementById('FirstName').value;
    alert(document.getElementById('subHeader').value = FirstName + " " + LastName);
}

HTML:

<tr>
    <td id="subHeader" colspan="4">
    </td>
</tr>
4

4 に答える 4

2

<td>タグに値がありません

これを想像してみてください<td value="sample"></td>

.innerHTMLまたは または.innerTestまたは.textContent代わりに使用する必要があります

function FirstName_onchange() {
var LastName = document.getElementById('LastName').value;
var FirstName = document.getElementById('FirstName').value;
document.getElementById('subHeader').textContent = FirstName + " " + LastName;
}
于 2013-08-17T02:58:11.660 に答える
1

<input />Value は、 and および<textarea />に対してのみ有効なプロパティです。

.innerHTMLまたは.innerTextとを使用する必要があり.textContentます。技術的innerTextには有効ではありませんが、IE では必要です。

function FirstName_onchange() {
    var LastName = document.getElementById('LastName').value;
    var FirstName = document.getElementById('FirstName').value;
    document.getElementById('subHeader').innerText = FirstName + " " + LastName;
    document.getElementById('subHeader').textContent = FirstName + " " + LastName;
}
于 2013-08-17T02:59:28.093 に答える
1

.valueメンバーは、次のように(または) またはを<input />使用して要素のコンテンツをすばやく設定したい場合にのみ使用できます。.textContent.innerText.innerHTML

function FirstName_onchange() {

    var lastName  = document.getElementById('LastName').value;
    var firstName = document.getElementById('FirstName').value;
    document.getElementById('subHeader').textContent = firstName + " " + lastName;
}

.textContentは よりも優先されることに注意して.innerTextください。使用する場合は、.innerHTMLユーザー入力をサニタイズして、たとえば XSS 攻撃を防ぐ必要があります。

于 2013-08-17T02:57:29.260 に答える
1

こうすることで

alert(document.getElementById('subHeader').value = FirstName + " " + LastName);

、新しいプロパティ「値」を td オブジェクトに追加し、それをアラートに渡しました。それがアラートが機能した理由です。

于 2013-08-17T03:13:41.440 に答える