[jQuery]Ajaxでformの値を送信する
jQuery
でフォームの値を ajax
で送信する方法
1<form name="example_form" method="post" action="">
2 <input type="hidden" name="name1" value="value1" />
3 <input type="text" name="name2" value="" />
4 <input type="radio" name="name3" value="31" />
5 <input type="radio" name="name3" value="32" />
6</form>
7
8<button class="onSend">ajaxで送信</button> (1)
9
10<script>
11 $(function () {
12 $(".onSend").on('click', function () { (2)
13 var obj = document.forms["example_form"];
14 $.ajax("/path/to/url", {
15 type: 'post',
16 data: $(obj).serialize(), (3)
17 dataType: 'json'
18 }).done(function(data) {
19 console.log("成功");
20 }).fail(function(data) {
21 console.log("失敗");
22 });
23 });
24 });
25</script>
1 | 送信ボタン |
2 | <1>のボタンのクリックハンドラ |
3 | formの値のシリアライズ、name1=value1&name2=test&name3=32 のように変換される。 |
フォームのsubmit
ボタンを送信のトリガーとする場合は本来のフォーム送信を取り消す処理を忘れないようにすること。
1<form name="example_form" method="post" action="">
2
3 ...
4
5 <input type="submit" value="ajaxで送信" class="onSend" />
6</form>
7<script>
8 $(function () {
9 $(".onSend").on('click', function (e) {
10 e.preventDefault();
11
12 ...
13 });
14 });
15</script>
とか
1<form name="example_form" method="post" action="">
2
3 ...
4
5 <input type="submit" value="ajaxで送信" class="onSend" />
6</form>
7<script>
8 $(function () {
9 $(".onSend").on('click', function () {
10
11 ...
12
13 return false;
14 });
15 });
16</script>
など