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

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

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

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

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

jQuery

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

Q&A

解決済

2回答

6108閲覧

form送信する前にバリデーションを当てたい

hatsu

総合スコア1809

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2017/08/07 01:07

今、ユーザーに入力させそれをconfirm.phpという確認画面で見せるプログラムを作っているのですが、formにバリデーションを当ててもaction=confirm.phpへ行ってしまいます。
リンクしてしまう前にvalidationを当てるにはどうしら良いでしょうか?
今のhtmlは以下です。

HTML

1<main> 2 <form action="confirm.php" method="post" name="form" onsubmit="return validate()"> 3 <p>あなたの達成したい目標をご入力の上、「確認画面へ」ボタンをクリックしてください。</p> 4 <div class="forms"> 5 <p class="form-group"> 6 <label>お名前</label> 7 <input type="text" name="name" placeholder="例)山田太郎" value=""> 8 </p> 9 10 11 <p class="form-group"> 12 <label>メールアドレス<span>(必須)</span></label> 13 <input type="text" name="email" placeholder="例)guest@example.com" value=""> 14 </p> 15 16 <p class="form-group"> 17 <label>目標<span>(必須)</span></label> 18 <input type="text" name="goal" placeholder="例)10億円でバイアウト" value=""> 19 </p> 20 21 <p class="form-group"> 22 <label>期限<span>(必須)</span></label> 23 <input type="date" name="deadline" value="2018-01-01"> 24 </p> 25 26 <p class="form-group"> 27 <label>リマインド頻度<span>(必須)</span></label> 28 <select name="remind_frequency"> 29 <option value="everyDay">毎日</option> 30 <option value="everyWeek">毎週</option> 31 <option value="everyMonth">毎月</option> 32 <option value="everyYear">毎年</option> 33 </select> 34 </p> 35 <p class="form-group"> 36 <label>目標詳細</label> 37 <textarea name="gaol_detail" rows="10" placeholder="30歳で10億円の企業のバイアウトをして、その後はどんどんん新しいサービスの開発に携わる。"></textarea> 38 </p> 39 </div> 40 <button type="submit" id="form_id" class="btn-gradient blue">確認画面へ</button> 41 </form> 42</main>

そしてjqueryで制御しようとしたのが以下のコードです。
参考にしているのは以下のサイトです。
http://qiita.com/kazu56/items/cdbf4e371cdc699709f1
http://d.hatena.ne.jp/gelegele/20120615/form_validation
http://uxmilk.jp/9235

javascript

1 2$(function(){ 3 4 $('#form_id').submit(function(){ 5 var error; // エラー用の変数を定義 6 7 var name_value = $("input[name=name]").val(); 8 email_value = $("input[name=email]").val(); 9 goal_value = $("input[name=goal]").val(); 10 deadline_value = $("input[name=deadline]").val(); 11 remind_frequency_value = $("[name=remind_frequency]").val(); 12 13 14 if(name_value == ""){ 15 alert("名前を入力してください"); 16 return false; 17 } 18 if(email_value == ""){ 19 alert("アドレスを入力してください"); 20 return false; 21 } 22 if(goal_value == ""){ 23 alert("目標を入力してください"); 24 return false; 25 } 26 if(deadline_value == ""){ 27 alert("期限を入力してください"); 28 return false; 29 } 30 if(remind_frequency_value == ""){ 31 alert("頻度を入力してください"); 32 return false; 33 } 34 return false; 35 }); 36});

わかるかた、心当たりあるかたご教授いただきますと嬉しいです。
よろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

最後までreturn false;としてしまうと、無条件にフォームが送信不能となります。最後のは外しましょう。

投稿2017/08/07 01:15

maisumakun

総合スコア145183

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

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

hatsu

2017/08/07 03:11

maisumakun様 ご回答ありがとうございます。 最後のreturn falseを外したところ、hellomartha様のご回答と合わせて問題解決いたしました。 ありがとうございます。
guest

0

ベストアンサー

submitイベントはformから発生します。
buttonに付けているのでバリデーション部分は通過してません。

javascript

1$('form').submit(function(){ 2//以下略

投稿2017/08/07 02:56

hellomartha

総合スコア329

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

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

hatsu

2017/08/07 03:08

hellomartha様。ご回答ありがとうございます。 そうだったんですね。自分の勉強不足でした。 hellomartha様のご回答の通りに行ったところ解決いたしました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問