如何更改输入框的value属性的HTML?

时间:2009-09-19 05:41:43

标签: jquery input

我希望能够做的是使用jQuery更改输入文本框的“value =”。最终目标是使用.html()获取表单,以便我拥有所有代码,以及输入框中输入的值。

作为一个例子,我有这个:

<span id="example">
<input type="text" value="" id="rate" />
</span>

如果用户在输入框中键入,我可以使用.val保存数据,但我想要的是抓取HTML,这样我就可以重新显示带有值的输入框。

如果用户在输入中键入“bob”。然后我用:

var test = $('#example').html();

变量'test'包含以下内容:

<input type="text" value="" id="rate" />

我想要的是:

<input type="text" value="bob" id="rate" />

我如何实现这一目标?

5 个答案:

答案 0 :(得分:1)

我认为这个问题与SO138893: jQuery html() in firefox (uses .innerHTML) ignores DOM changes重复。答案应该解决你的问题。我不认为这个新问题应该被删除 - 它可能有助于其他人找到通往另一个的方式。

答案 1 :(得分:1)

  

最终目标是使用.html()获取表单,以便我拥有所有代码,以及输入框中输入的值。

这个策略让你失败了。表单值是一个单独的数据层,与HTML属性分开存储。 HTML value属性反映在对象的defaultValue属性中,不是 value属性。

设置表单控件的值或选中/选择性不会更改HTML DOM属性;因此,使用innerHTMLhtml()序列化表单不会为您提供表单值 - 除非在IE中,因为存在错误。

(IE中还有其他关于序列化名称更改的表单的错误。只是避免使用序列化;从valueval()记住值本身更可靠。)

答案 2 :(得分:0)

要使用id率更改输入元素的值,可以使用此值。

$("#rate").val(newvalue);

将值设置为bob use

$("#rate").val("bob");

答案 3 :(得分:0)

我检查了你的代码,它运行正常。唯一缺少的是输入字段的类型。您可以尝试以下方法

$('#example')[0].innerHTML

第二个是

$("#rate")[0].outerHTML

希望这会有所帮助。

答案 4 :(得分:0)

如何保存实际的HTML,但保存属性?

var attr = {
'value' : $('#rate').val(),
'type' : $('#rate').attr('type') }
//later on in the code or something:
var inp = $('<input />').attr('id', 'rate').attr(attr);