質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

5102閲覧

jQuery フォームのserializeの動作に関して

HS1111

総合スコア91

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2017/02/16 09:11

編集2017/02/16 09:29

jQueryでformをserializeして非同期でサーバーにバリデート処理したいのですが、
serializeがエラーも履かずに、抜けてしまいます。

console.logで確認してもnullとかじゃない様です。

inputタグには全てname属性とvalue属性はあります。
serializeが失敗する要因とかデバック方法のヒントがあれば助かります。

失礼しました。ソース記載します。

lang

1 <form id="myForm" method="POST" action="/app/index.php"> 2 姓:<input name="name_sei" type="text" value="{$smarty.request.name_sei|default:''}" maxlength="10"> 3 名前:<input name="name_mei" type="text" value="{$smarty.request.name_mei|default:''}"> 4 セイ:<input name="kana_sei" type="text" value="{$smarty.request.kana_sei|default:''}"> 5 メイ:<input name="kana_mei" type="text" value="{$smarty.request.kana_mei|default:''}"> 6 電話番号:<input name="tel" type="text" value="{$smarty.request.tel|default:''}" maxlength="20"> 7 <a href="javascript:void(0)" onclick="formConfirm();">次へ</a> 8 9 <input type="hidden" name="module" value="{$smarty.request.module}"> 10 <input type="hidden" name="action" value="{$smarty.request.action}"> 11 <input type="hidden" name="mode" id="mode" value=""> 12 </form> 13 14 <script type="text/javascript"> 15 function formConfirm() { 16 $("#mode").val('validate'); 17 var postdt = $("#myForm").serialize(); 18 console.log(postdt); 19 $.ajax({ 20 url: '/app/index.php', 21 type: 'POST', 22 data: postdt, 23 timeout: 10000, 24 dataType: "json", // レスポンスをJSONとしてパースする 25 success: function(result) { 26 if (result.status == 'success') { 27 $("#mode").val('execute'); 28 $("#myForm").submit(); 29 return; 30 } else if (result.status == 'error') { 31 $("#err_msg").html(""); 32 l = result.massage.length; 33 for (var i in result.massage) { 34 $("#err_msg").append("<li>"+result.massage[i]+"</li>"); 35 $("#alert-danger").show(); 36 } 37 alert('エラーがあります、確認下さい'); 38 window.location.hash = "myforms"; 39 return false; 40 } else { 41 alert("処理が異常終了しました。"); 42 } 43 }, 44 error: function() { // HTTPエラー時 45 alert("Server Error. Pleasy try again later."); 46 }, 47 complete: function() { // 成功・失敗に関わらず通信が終了した際の処理 48 } 49 }); 50 } 51 </script> 52

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2017/02/16 09:13

ソースがないと・・・
turbgraphics200

2017/02/16 09:13

組まれたコードを掲載してください。
HS1111

2017/02/16 09:27

それはそうですね・・失礼しました。追記致します。
guest

回答1

0

ベストアンサー

普通に行けそうな気がしますが

  • send.php

PHP

1<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 2<script> 3$(function(){ 4 $('#tugihe').on('click',function(e){ 5 e.preventDefault; 6 $("#mode").val('validate'); 7 var postdt = $("#myForm").serialize(); 8 $.ajax({ 9 url: 'recv.php', 10 type: 'POST', 11 data: postdt, 12 timeout: 10000, 13 dataType: "json", 14 success: function(result) { 15 if (result.status == 'success') { 16 $("#mode").val('execute'); 17 $("#myForm").submit(); 18 return; 19 } else if (result.status == 'error') { 20 $("#err_msg").html(""); 21 l = result.massage.length; 22 for (var i in result.massage) { 23 $("#err_msg").append("<li>"+result.massage[i]+"</li>"); 24 $("#alert-danger").show(); 25 } 26 alert('エラーがあります、確認下さい'); 27 window.location.hash = "myforms"; 28 return false; 29 } else { 30 alert("処理が異常終了しました。"); 31 } 32 }, 33 error: function(xhr,err) { // HTTPエラー時 34 console.log(err); 35 }, 36 success: function(data) { // 成功・失敗に関わらず通信が終了した際の処理 37 console.log(data); 38 } 39 }); 40 }); 41}); 42</script> 43<form id="myForm" method="POST" action="recv.php"> 44姓:<input name="name_sei" type="text" value="xxx" maxlength="10"> 45名前:<input name="name_mei" type="text" value="xxx"> 46セイ:<input name="kana_sei" type="text" value="xxx"> 47メイ:<input name="kana_mei" type="text" value="xxx"> 48電話番号:<input name="tel" type="text" value="xxx" maxlength="20"> 49<a href="#" id="tugihe">次へ</a> 50 51<input type="hidden" name="module" value="xxx"> 52<input type="hidden" name="action" value="xxx"> 53<input type="hidden" name="mode" id="mode" value=""> 54</form> 55
  • recv.php

PHP

1<?PHP 2print json_encode($_POST); 3?>

投稿2017/02/16 10:03

yambejp

総合スコア114779

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HS1111

2017/02/16 12:41

yambejpさん無事解決しました! 1ページの中に、ログインフォームやメインフォームや複数のフォームが存在しており、 タグの閉じ漏れでフォームがネストになっておりました。 お恥ずかしい限りですw 有り難う御座いました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問