使用jQuery获取HTML数据

时间:2011-02-25 11:17:16

标签: javascript jquery html

我有一个包含许多元素的表单(例如textarea,input,select),在用户输入一些数据之后,这些元素的状态应该会改变。

例如,如果用户检查过,input[type="radio"]元素将具有属性checked="checked"value元素的input[type="text"]属性将包含用户输入的文本。

问题是$('#form1').html()返回的html字符串不包含这些数据。

请随意查看此示例:

http://jsfiddle.net/cmNmu/

您可以看到,无论您的输入是什么,返回的html仍然相同(没有属性数据)。

有没有简单的方法来收集html,包括他们的状态?

提前致谢。

5 个答案:

答案 0 :(得分:1)

人们通常使用$('#form1').serialize()来获取值。如果html()没有同时返回源和数据,我认为除了通过查看数据手动构建完整的html之外,还有其它方法。

现场演示: http://jsfiddle.net/cmNmu/6/

答案 1 :(得分:1)

使用下面的代码通过jQuery获取输入类型文本的值

alert($("input:text").val())

答案 2 :(得分:1)

也许你可以使用'onblur'事件处理程序在你离开时设置元素的值

答案 3 :(得分:1)

您应该使用以下方式获取值:

$('#form1').find(':input').val();
$('#form1').find(':radio[name=gender]:checked').val();

如果你有多个输入,那么你可以过滤他们的名字或类甚至id。然后,您需要使用.find(':input[name=input_field_name]')选择输入。我的建议是:如果你想使用表单,请使用name属性而不是其他属性。

答案 4 :(得分:1)

使用gnarf编写的jQuery formhtml插件:

jQuery html() in Firefox (uses .innerHTML) ignores DOM changes

输入元素的更改可以反映在formhtml()返回的html字符串中。

非常感谢大家。