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

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

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

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

jQuery

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

Q&A

解決済

1回答

2622閲覧

「ユーザー名、パスワードを入力してください」と表示したい

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2015/02/06 13:49

編集2015/02/06 14:16

ユーザー名とパスワードのinputに未入力の場合に、「ユーザー名(パスワード)を入力してください。」というアラートを表示したいと考えています。
submitを使う場合は、inputにrequiredを記載しておけばブラウザで入力を促してくれますが、Ajaxを使って処理したいと考えているため、今回はその方法はとれません。
このような時、一般的に用いられるセオリーのようなものがあれば、ご教示頂きたいです。

私が考えたのは、下記のコードです。

lang

1function (){ 2 ($("p.alert_input").remove()) ; //p.alert_input要素を一旦消す。 3 if(isset($("input#user_name").val())){ 4 if(isset($("input#password").val())){ 5 //両方とも入力されていた場合の実行内容 ; 6 }else{ 7 $("input#password").after('<p class="alert_input">パスワードを入力してください。</p>') ; 8 } 9 }else{ 10 $("input#user_name").after('<p class="alert_input">お名前を入力してください。</p>') ; 11 } 12};

上記のコードで、user_nameが未入力の場合はuser_nameのinputの下に「お名前を入力してください。」と表示されますし、passwordが未入力の場合はpasswordのinputの下に「パスワードを入力してください。」と表示されます。
しかし、両方とも未入力の場合には、「お名前を入力してください。」しか表示されないことになってしまいます。両方とも未入力であれば、「お名前を入力してください。」と「パスワードを入力してください。」の両方が表示されて欲しいです。どうしたら、そのような処理が可能でしょうか。

また、一番上の、

lang

1($("p.alert_input").empty()) ;

というコードは、一旦表示されたアラートを消すために、初期化的な役割を持たせたものです(これを書かないと、アラートの表示がどんどん増えてしまうため。)。これでも役割は果たしているのですが、もっとスマートな方法がないのかと考えています。

ご存知の方、ご教示いただけないでしょうか。
よろしくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

ボールドテキスト両方が入力されていない の条件分岐を書けばよいのでは?

以下に擬似コードで。

isEmptyname = ... // name が空か否かを設定する isEmptyPassword = ... // password が空か否かを設定する if (isEmptyName && isEemptyPassowd) { ... // name と password が空です のエラー処理 } elseif (isEmptyName) { ... // name が空です のエラー処理 } elseif (isEmptyPassword) { ... // password が空です のエラー処理 } else { ... // 両方とも入力されていた場合の処理 }

投稿2015/02/06 23:18

編集2015/02/07 03:10
katoy

総合スコア22324

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

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

退会済みユーザー

退会済みユーザー

2015/02/07 02:57

二つの変数に各々が空欄かどうかを設定し、&&を使って条件分岐を表現するのですね。 ありがとうございます。 大変助かりましたm(__)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問