🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JavaScript

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

Q&A

解決済

3回答

372閲覧

ごjsのreturn文について

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

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

0グッド

0クリップ

投稿2019/10/01 06:05

編集2019/10/01 06:50

js

1function passwordCheckFunction { 2 var loginPass1= document.getElementById("loginPass1").value; 3 var loginPass2= document.getElementById("loginPass2").value; 4 5 if(loginPass1 !== loginPass2){ 6 alert("パスワードが一致していません。") 7 8 return false; 9 }else{ 10 return true; 11 } 12}

html

1<form onsubmit="return passwordCheckFunction()"> 2<input type="password" name="loginPass1" id ="loginPass1"> 3<input type="password" name="loginPass2" id ="loginPass2"> 4<button type="submit" value="send">保存</button> 5}

上記で実行してみましたが、コンソールに値が出ます。同じように書いたつもりなのですが、なにが原因かわかりません。

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

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

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

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

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

m.ts10806

2019/10/01 06:08

仰っている「コントローラー」がなんなのか明示してください。 また、これだけではさまざまな前提や背景がないためどの方向性で回答すべきかが見えません。
退会済みユーザー

退会済みユーザー

2019/10/01 06:16

コントローラーという表現が正しいのかわかりませんが、コンソールに表示されます。
m.ts10806

2019/10/01 06:17

Springですかね…。質問タグへの追加と環境詳細を本文に追記してください。 というか、不一致ならそもそもpostしなければ良いのでは?postしたうえでどう処理させたいのでしょうか? そこも含めた「前提や背景」が要件として質問本文に必要です
guest

回答3

0

ベストアンサー

こんな感じですか?

javascript

1<script> 2function passwordCheckFunction() { 3 var loginPass1= document.getElementById("loginPass1").value; 4 var loginPass2= document.getElementById("loginPass2").value; 5 if(loginPass1 !== loginPass2){ 6 alert("パスワードが一致していません。"); 7 return false; 8 }else{ 9 return true; 10 } 11} 12</script> 13<form onsubmit="return passwordCheckFunction()"> 14<input type="text" name="loginPass1" id="loginPass1" required><br> 15<input type="text" name="loginPass2" id="loginPass2" required><br> 16<input type="submit" value="send"> 17</form>

投稿2019/10/01 06:17

yambejp

総合スコア116661

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

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

退会済みユーザー

退会済みユーザー

2019/10/01 06:22

はい、そうです。 パスワードが一致しない場合アラートが出るのですが、okを押すとコンソールに一致していないじょうたいのままで、コンソールに飛んでしまいます。。
退会済みユーザー

退会済みユーザー

2019/10/01 06:23

一致しない場合はsubmitを押してもreturn文で回避できますでしょうか?
yambejp

2019/10/01 06:26

onsubmit側でreturnで受ければ大丈夫です(回答もそうなっています)
退会済みユーザー

退会済みユーザー

2019/10/02 01:03

ありがとうございます。昨日はなぜかできませんでしたが、今日上記コード をしましたところ実行できました。ありがとうございました。
guest

0

buttonをsubmitではなく、buttonにしてclickイベントにて一致不一致のチェックを行い、一致しているときの分岐でform.submitするのが流れとしては自然かと思います。

投稿2019/10/01 06:27

m.ts10806

総合スコア80875

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

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

退会済みユーザー

退会済みユーザー

2019/10/01 06:53

すいません、form.submitするというのが難しく流れが理解できません。。submitしたときにアラートが出る使用ですが、どういう流れのところをお話しされてますでしょうか?
m.ts10806

2019/10/01 07:08

ボタン押下時に入力のチェックを行います。 OKならformを送信します。 NGならなにもしません。buttonのtypeがbuttonなので。 return不要の案です。 JavaScriptなのであればformをsubmitしなくても入力された情報は取得できます。
退会済みユーザー

退会済みユーザー

2019/10/01 07:16

<button type="button">に変更するだけで実現できるということでしょうか? <button type="button">に変更し、試してみましたが、コンソールに値が表示されました。
m.ts10806

2019/10/01 07:35

いえ、できません。回答きちんと読んでください。 >clickイベントにて一致不一致のチェックを行い、一致しているときの分岐でform.submitする 現在はformのサブミットイベントなのでそこを修正する必要がありますし、リンクを貼ったようにsubmitをJavaScript側から指示する必要があります。
退会済みユーザー

退会済みユーザー

2019/10/01 08:18

調べても分からなく、どのように書くのか教えていただけないでしょうか?
m.ts10806

2019/10/01 09:15 編集

formのonsubmitを書けるならできそうに思いますけども。 1 buttonのtypeをbuttonに 2 formのonsubmitを廃してbuttonにonclickを追加 3 function passwordCheckFunction { ↓ function passwordCheckFunction() { 4 return trueのところをformのsubmitに切り替え。returnは不要 (return trueもreturn falseもなくていい) form.submitについては回答当初にリファレンスへのリンク貼ってるので確認してください。 WebでJavaの時点で「コンソール」は2つでてきます。 ブラウザなのかIDEなのか。どちらか明示した方が混乱がありません(現在「コンソールに飛ぶ」という謎ワードもあって回答者に混乱をあたえています)。 タグがJavaScriptしかついてないのでJava分からない人がくる可能性が高いですよ。 別途指摘したようにタグもきちんと整理してください。1質問に5つまでつけられるので。
退会済みユーザー

退会済みユーザー

2019/10/02 01:05

ありがとうございます。本日ご指示の通り試しましたところ実行できました。ありがとうございました。質問も今後気をつけます。
guest

0

()がないのでpasswordCheckFunctionが動いていないようです
kevin12345さんのコード

function passwordCheckFunction {

yambejpさんのコード

function passwordCheckFunction(){

formにmethod=postは付けた方がいいでしょう、今のままだと初期値のmethod="get"となっているのでURLにパスワードがでてしまいます

投稿2019/10/01 08:32

date

総合スコア1820

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

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

退会済みユーザー

退会済みユーザー

2019/10/01 08:41

ありがとうございます。見落としてしまっておりました。。 GETも付け加え実行してみたのですが、コンソールに値が飛んできてしまいます。。
date

2019/10/01 08:42

コンソールに値が飛ぶとはなんですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問