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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

HTML

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

解決済

JavaScriptでのComboBox のようなもの

BeatStar
BeatStar

総合スコア3

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

HTML

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

2回答

0評価

0クリップ

4221閲覧

投稿2016/12/12 04:21

編集2022/01/12 10:58

avaScriptに挑戦しています。

HTMLに ComboBox ( テキストボックス + リストボックス ) に当たるものがないので、

datalistタグというものでやっています。

( HTML といっても HTML5 です。 )

HTML

<form name="Asking"> <label id="TextBoxForKeyword"> キーワード:<input type="text" name="KeyWordEdit" list="KeywordsList"> </label> <datalist id="KeywordsList"> <option value="選択肢A"></option> <option value="選択肢B"></option> <option value="選択肢C"></option> <option value="選択肢D"></option> <option value="選択肢E"></option> </datalist> </form>

という風にして、

テキストボックスにキーワードを入れて 検索かけたりする場合で、

datalistにないキーワードの場合は alert で "キーワードが間違っている" といったメッセージを表示するとします。

メッセージ表示はいいですが、

datalistにないキーワード ... っていうのがわからないのです。

C/C++ & WinAPI や ExcelVBA, Java 等の場合は ComboBox ( 名称が違ったりするが。 ) のインデックスが -1 のときは、

「リストにないデータ」なので、やりやすいですが、HTML+JavaScriptの場合、それができないようなので、どうすればいいか...

上記コードの場合は、

選択A ~ 選択E までのデータなら OK で、選択F等のようにリストにないものは alert等で警告する

のようにしたいのです。

ラジオボタンのように 「指定フォーム内の指定nameの個数分ループし、チェックがあるのをtrueとする」のような感じなのかと思い、

上記コードのoptionタグ内に name="key" を埋め込み、

JavaScript

/\* リスト\(候補\)に指定キーワードがあるかどうか調べる。 あれば true, なければ false を返す。 keyword := この関数を呼び出す前に取得したデータ \( キーワード \) とする \*/ function HasKey\( keyword \){ var flag; flag = false; for\( i = 0; i < document\.Asking\.key\.length; i\+\+ \){ if\( document\.Asking\.key\[i\]\.value == keyword \){ flag = true; break; } } return flag; }

としました。

で、戻り値を受け取った側 ( 呼び出し側 ) は true/false をalert で 表示する
のですが、なぜか何も出てきません。

プログラム ( JavaScript )から 配列で 指定する方法もありますが、

外部jsファイルに記述するので、

できれば変更は HTMLだけに済ませたいのですが。

[環境等]
HTML: HTML5
言語: JavaScript

宜しくお願い致します。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

Lhankor_Mhy
Lhankor_Mhy

2016/12/12 07:16

追記拝読。どちらの回答でも応用すればできると思うのですが、分からない部分はどこですか?

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

HTML

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