2

jQueryserialize()从表单中抛出空字符串,这里是表单的来源

<form accept-charset="UTF-8" action="/asdf" id="form_for_asdf_1_option_1" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /><input name="authenticity_token" type="hidden" value="asdfaaqwefasdfwefefsefefwew=" /></div>
    <input name="checkbox_update_vote[asdf_id]" type="hidden" value="0" /><input id="dbr_1_of_asdf_1" name="checkbox_update_vote[asdf_id]" type="checkbox" value="1" />
    <input id="option_1_of_asdf_1" name="checkbox_update_vote[option_id]" type="hidden" value="1" />
    <input id="del_1_of_asdf_1" name="checkbox_update_vote[del]" type="hidden" value="false" />
    <br />
</form>

以及用于显示序列化输出的 JavaScript。

$(document).ready(function() {
  $('input[type="checkbox"]').change(function() {
    alert($($(this).parents("form")[0].id).serialize());
  });
});

有人能指出我在哪里做错了吗?

4

2 回答 2

3

添加 '#':

$("#" + $(this).parents("form")[0].id)

或删除.id

$($(this).parents("form")[0])
于 2012-04-07T08:47:11.880 回答
0

#在查找具有给定 ID 的表单时,您错过了。

但是,您可以避免此问题,只需使用.closest()来查找祖先<form>

$(this).closest('form').serialize();
于 2012-04-07T08:50:40.930 回答