我有一个基本的html和javascript函数,如下所示。当我按表单ID序列化表单时,它可以工作。但是我想序列化一段html内容,而不是$('.FormReference').serialize()
这样的形式。
我不能做什么?
$(function () {
$('#btnLogin').click(function (event) {
alert($('#form1').serialize());
});
});
<form id="form1" runat="server" action="">
<div>
<table class="FormReference">
<tr>
<td>
<input type="text" id="_Username" name="Username" />
</td>
<td>
<input type="text" id="_Password" name="Password" />
</td>
</tr>
<tr>
<td colspan="2">
<input type="button" id="btnLogin" value="Login" />
</td>
</tr>
</table>
</div>
</form>
答案 0 :(得分:6)
.serialize()
方法可以对选择了单个表单元素的jQuery对象起作用,例如<input>
,<textarea>
和<select>
。但是,通常更容易选择<form>
标记本身进行序列化:
所以你有两个选择:
$('.FormReference').closest('form').serialize(); // serialize the whole form
$('.FormReference').find('input, select, textarea, button').serialize(); // serialize only elements contained within .FormReference
$('.FormReference').find(':input').serialize(); // shorter, but less efficient, alternative