コードに奇妙なものを見つけました。$('form')で要素を選択することで解決しましたが、グローバルに選択しないようにページに1つ以上のフォームが存在する可能性があり、特定のフォーム要素を選択したいだけです。
私の問題はserialize()から始まり、IDセレクターを使用して特定のフォームを選択することはできますが、.submitイベント中にシリアル化できません。しかし、ID($( "#formid"))のフォームを選択した場合、serialize()はフォームの送信では機能しません。
私のJSコードは:
var entrylist = $('form'); //<< if I put $("#entrylist) here, 'data' displays null.
entrylist.submit(function(e){
e.preventDefault();
var data = JSON.stringify($(this).serializeObject())
console.log(data);
});
そして形は:
<form id="entrylist" action="" method="post">
<textarea name="inputarea"></textarea>
some more inputs.. bla bla
</form>
$('form')の結果
{"inputarea":"brobrobrobro","thread_id":"399196","csrf_token":"aIw3dXzCbJGp4c32PzPeo9pVDKwTkCuQotyRWVll"}
$('#entrylist')の結果
{}
注:serializeObjectは、https://stackoverflow.com/a/1186309/1932414から取得したカスタム関数です。