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 に答える