我有一个包含许多元素的表单(例如textarea,input,select),在用户输入一些数据之后,这些元素的状态应该会改变。
例如,如果用户检查过,input[type="radio"]
元素将具有属性checked="checked"
。 value
元素的input[type="text"]
属性将包含用户输入的文本。
问题是$('#form1').html()
返回的html字符串不包含这些数据。
请随意查看此示例:
您可以看到,无论您的输入是什么,返回的html仍然相同(没有属性数据)。
有没有简单的方法来收集html,包括他们的状态?
提前致谢。
答案 0 :(得分:1)
人们通常使用$('#form1').serialize()
来获取值。如果html()
没有同时返回源和数据,我认为除了通过查看数据手动构建完整的html之外,还有其它方法。
答案 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字符串中。
非常感谢大家。