0
この例では、単純なフォームを使用しますが、実際にはフォームははるかに複雑です。私がしたいのは、フォームが送信されるのを防ぎ、あとでajaxリクエストで使用するために提出しようとしていたデータを収集することです。htmlフォームの入力をハイジャックし、正確にajaxリクエストで使用するデータを変換するには?
<form action="#" method="post" id="myform">
<input name="string_input" value="default"/>
<input type="submit" value="submit"/>
</form>
これまでのところ、私は簡単にリスナーを提出すると、フォームの送信を停止することができることを考え出した、そしてそれはまた、その中に大量のデータとイベント値を返します。
document.getElementById('myform').onsubmit = function(e) {
console.log(e);
return false;
};
しかし、私はajaxリクエストでjson形式にそのイベントデータを変換する方法があまりよく分かりません。
これを行う簡単な方法はありますか?おそらく、これにはいくつかの機能がありますか?
私が言ったように、フォームははるかに複雑でダイナミックです。私たちは変化するのでセレクタの束を追加するだけではありません。また、フォームが特殊文字をエスケープする方法のために、jqueryを使用して再度読み取るのと同じ値を取得する保証はありません。隠れた入力があるかもしれません。配列には配列も含まれています。フォームの要素に関係なく、何を送信するのかについて100%正確なデータを取得したいと思います。そして、好ましくは別の読みをせずに。私は、リクエストデータ自体が何らかの形で傍受されると信じています。 – Anonymous
スプレーと祈りのアプローチが必要なのですか?さて、更新された答え。 sendをクリックするたびに#myformをたどり、各inputおよびtextarea要素の名前/値を取得します。 – Vic