すでに解決済みではありますが、処理が上手くいかなかった原因が分からず質問させていただきます。
Laravelアプリケーションの中で、jqueryのsubmitメソッドにて値をPOSTしようとしたところつまづきました。
内容としてはjqueryのsubmitメソッドを下記のように指定した場合POSTできず、GETにリダイレクトされてしまいました。
html
1<form method="post" action="{{ hoge }}"> 2 <!-- 中略 --> 3 <button type="button" id="button" class="common_form_submit">登録</button> 4</form>
jQuery
1<script type="text/javascript"> 2 $('#button').on('click', function(){ 3 $(this).attr('disabled', 'disabled'); 4 $('form').submit(); 5 }); 6</script>
こちらを下記のように修正したところ、正常に動作しました。
html
1<form method="post" action="{{ hoge }}" id="form> 2 <!-- 中略 --> 3 <button type="button" id="button" class="common_form_submit">登録</button> 4</form>
jQuery
1<script type="text/javascript"> 2 $('#button').on('click', function(){ 3 $(this).attr('disabled', 'disabled'); 4 $('#form').submit(); 5 }); 6</script>
変更した内容としては、jqueryのsubmitメソッドに対して
$('form').submit();
として、formタグを直接指定していたのに対して、formタグに
id="form"
とし、id属性を与えた上で
$('#form').submit();
としたところ正常に動作しました。
developerツールのNetworkで見たところ、変更前のコードではformタグが2つ取れていたようです。
こちら上記ですでに解決はしたのですが、formタグを直接指定するとなぜPOSTメソッドがGETにリダイレクトされるのか原因は分かっていません。こちらお分かりの方がいたらご教示いただけると幸いです。
よろしくお願いいたします。