Einfache Frage (ich denke):

Wenn Sie den Wert in einer Eingabe ändern, zeigt das String-Ergebnis aus XMLSerializer nicht den Wert

In meinem Snippet versuchen Sie, ein in den Eingang einzugeben, und klicken Sie dann auf serialisieren.

Warum ändert sich das nicht, und was kann ich tun, um das aktualisierte HTML der Eingabe zu erhalten?

document.getElementById('clk').addEventListener("click", function() {
  console.log(new XMLSerializer().serializeToString(document.getElementById('foo')));
});
<input id='foo' />
<button id='clk'>Serialize</button>
-1
ControlAltDel 3 Juni 2021 im 02:45

1 Antwort

Beste Antwort

Sie können ein Eingabeereignis (oder ein Ändern von Ereignis) verwenden, um das Wertattribut zu aktualisieren

document.getElementById('clk').addEventListener("click", function() {
  console.log(new XMLSerializer().serializeToString(document.getElementById('foo')));
});


document.querySelector('input#foo').addEventListener("input", function(){
   this.setAttribute('value', this.value);
})
<input id='foo' />
<button id='clk'>Serialize</button>
1
charlietfl 2 Juni 2021 im 23:59