你如何将 html 和 value 输出到一个字符串

ede*_*son 5 javascript jquery

给定这个 html 输入元素,<input id="input1" type="text" />

如果用户输入“test”的值,jQuery 是否可以将其序列化为字符串?

我要寻找的输出是, <input id="input1" type="text" value="test" />

我没有将它复制到 DOM 中的另一个元素,我需要实际的字符串,以便我可以将它发送到 EVOPdf。我已经尝试过 clone(true),但它没有给我用户在输入中输入的任何值。

我不得不解析 html() 字符串并为每个输入插入一个值,除非有人知道更好的方法。

air*_*tyh 2

我的测试表明,属性值与value值无关- 至少在我使用 Safari 5.1 和 FF 6 进行的测试中是这样。

因此,如果我修改文本字段的内容(我输入 ueoau)并选择它

> var text = $('input[type=text]').first()
Run Code Online (Sandbox Code Playgroud)

并使用它的值.val()

> text.val()
"ueoau"
Run Code Online (Sandbox Code Playgroud)

但获取它的标记会将值呈现为空(此片段来自詹姆斯的回答)

> $('<div>').append(text.clone()).remove().html()
"<input autocomplete="off" name="q" class="textbox" placeholder="search" tabindex="1" type="text" maxlength="140" size="28" value="" style="width: 200px; max-width: 200px; ">"
Run Code Online (Sandbox Code Playgroud)

获取属性值也不起作用(getAttribute这里使用 DOM 来避免 jQuery 的魔力attr()

> text[0].getAttribute('value')
""
Run Code Online (Sandbox Code Playgroud)

再次强调,属性值与值不同。因此,您可以使用的一种解决方法是将其属性设置为其

> text[0].setAttribute('value', text.val())
> $('<div>').append(text.clone()).remove().html()
"<input autocomplete="off" name="q" class="textbox" placeholder="search" tabindex="1" type="text" maxlength="140" size="28" value="ueoau" style="width: 200px; max-width: 200px; ">"
Run Code Online (Sandbox Code Playgroud)

这对我有用。我想我对此的解释是属性值仅代表字段的初始值,并且之后不与其真实值同步。