我有一个包含多个输入元素的表单,需要序列化 - 转换为 HTTP 查询字符串。这很好用。然后我想去掉一个输入值,所以我用 find 选择所有不等于那个的元素;效果很好。但是后来我尝试通过将两个发现链接在一起来删除两个输入,但它失败了。
我知道禁用不需要的输入或删除 name 属性也可以,但这些选项在我的应用程序中并不明智。
我有一个 jsfiddle 来演示:http: //jsfiddle.net/dr_glenn/H8ZwL/
让我在这里总结一下。有这样一个表格:
<form>
<input type="text" name='aa' value='aa'>
<input type="text" name='bb' value='bb'>
<input type="text" name='cc' value='cc'>
</form>
像这样的jquery代码:
query_args = $('#form').serialize();
alert( query_args ); // looks OK
query_args = $('#form').find('[name!="bb"]').serialize();
alert( query_args ); // Very good, 'bb' is gone
query_args = $('#form').find('[name!="bb"]').find('[name!="cc"]').serialize();
alert( query_args ); // FAIL! Nothing is displayed.
如果我刚刚犯了一些愚蠢的菜鸟错误,请试着表现得很好!