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

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

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

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

Q&A

解決済

2回答

511閲覧

javascriptを使って2つの検索フォームの空検索を禁止する方法

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

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

0グッド

0クリップ

投稿2017/06/08 10:05

現在ページに検索フォームを2つ入れています。1つの場合は下記のようなコードで問題なかったのですが2つの場合だとうまく行きません。

php

1<script> 2function search(){ 3 if (document.forms[0].searchword.value == "") { 4 alert("文字が入力されていません。"); 5 document.forms[0].searchword.focus(); 6 return false; 7 } 8 return true; 9} 10</script> 11<form action="sample.php" method="post" onsubmit="return search()">> 12<input class="...." type="text" name="searchword" id="searchword"> 13<input type="submit" value="検索する"> 14</form>

今回実装しているのは下記になります。
単純にもう1つの方のformにonsubmit="return search()"を追加したりしても最初のformが空のままなのでアラート表示が出てきてしまいます。こういう場合どうすればいいのでしょうか。お願いします。

php

1<script> 2function search(){ 3 if (document.forms[0].searchword.value == "") { 4 alert("文字が入力されていません。"); 5 document.forms[0].searchword.focus(); 6 return false; 7 } 8 return true; 9} 10</script> 11<form action="sample.php" method="post" onsubmit="return search()">> 12<input class="...." type="text" name="searchword" id="searchword"> 13<input type="submit" value="検索する"> 14</form> 15 16.... 17 18<form action="sample1.php" method="post"> 19<input class="...." type="text" name="keyword" id="keyword"> 20<input type="submit" value="検索する"> 21</form>

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

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

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

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

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

guest

回答2

0

ベストアンサー

あ・・・searchwordとkeywordなんですね・・・直します。

もっとも簡単な方法ですが、

html

1<script> 2function search(obj){ 3 var target = (obj.searchword) ? obj.searchword : obj.keyword; 4 if (target.value == "") { 5 alert("文字が入力されていません。"); 6 target.focus(); 7 return false; 8 } 9 return true; 10} 11</script> 12<form action="sample.php" method="post" onsubmit="return search(this)">> 13<input class="...." type="text" name="searchword" id="searchword"> 14<input type="submit" value="検索する"> 15</form> 16 17.... 18 19<form action="sample1.php" method="post" onsubmit="return search(this)">> 20<input class="...." type="text" name="keyword" id="keyword"> 21<input type="submit" value="検索する"> 22</form> 23```とすることですかね。

投稿2017/06/08 11:15

編集2017/06/08 11:19
shi_ue

総合スコア4437

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

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

0

HTML

1<form action="sample.php" method="post" onsubmit="return search()"> 2<input class="...." type="text" name="searchword" id="searchword" required> 3<input type="submit" value="検索する"> 4</form>

テキストボックスの入力必須はrequiredで処理するくらいが妥当じゃないですか?
あまり厳密にやっても、結局サーバーの受けっ取った側でもバリデートはやる必要があるので
あくまでもクライアント側でやるのはユーザーの入力補助でしかないので

投稿2017/06/08 13:40

yambejp

総合スコア114779

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

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

退会済みユーザー

退会済みユーザー

2017/06/08 14:13

コメントありがとうございます。ご指摘の通り少しこだわり過ぎていたかもしれません。必要な機能かどうか検討してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問