代码之家  ›  专栏  ›  技术社区  ›  ControlAltDel

序列化输入。未获取其(更新的)值

  •  0
  • ControlAltDel  · 技术社区  · 3 年前

    如果更改输入中的值,则XMLSerializer的字符串结果不会显示该值

    在我的代码段中,尝试在输入中输入a,然后单击“序列化”。

    为什么它没有改变,我能做些什么来获得输入的更新的HTML?

    document.getElementById('clk').addEventListener("click", function() {
      console.log(new XMLSerializer().serializeToString(document.getElementById('foo')));
    });
    <input id='foo' />
    <button id='clk'>Serialize</button>
    1 回复  |  直到 3 年前
        1
  •  1
  •   charlietfl    3 年前

    您可以使用输入事件(或更改事件)侦听器来更新value属性

    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>