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

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

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

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

jQuery

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

Q&A

2回答

2331閲覧

datalistを利用したコンボボックスの選択

mi37

総合スコア13

HTML5

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

jQuery

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

1グッド

0クリップ

投稿2018/12/17 02:57

編集2018/12/17 12:31

datalistタグを利用して入力できるコンボを作ったのですが、
絞り込みができるおかげか、コンボから選んだあと、▼を押すと、選択リストは選んだものだけになってしまいます。
これを、絞り込みできる機能はそのままで、リストから選んだ後のリストは全て出て欲しいのですが
どうやってやったら良いでしょうか?

<input type="text" list="lists" id="selectCode"/> <datalist id="lists"> <option data-value="">001|AAAA</option> <option data-value="">999|その他</option> </detalist>

onfocusとかで、選択しようとしたときに選ばれていた内容を消せば出来るのですが
それだと選ばなかった場合に、選んでいた情報が消えてしまいます。

宜しくお願いします。

$('input').focus(function() { var obj = '#'+$(this).attr('list'); $('#'+$(this).attr('list')+" option").prop('disabled',function(){ $(obj).append("<option data-value=" + $(this).val() + ">" + $(this).val() + "</option>"); }); });

色々調べ、フォーカス時にdatalistの中身を書き換えるように試してみたのですが
選択した内容が2重にリストに追加されるだけでした。
$(this).val()を確認すると、全リスト内容が取れるようなので、disabled状態を解除できれば良いのでしょうか?
書き方がわかりません。。。。

amie8mie👍を押しています

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

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

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

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

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

x_x

2018/12/18 06:12

「絞り込みできる機能はそのまま」、「リストは全て出て欲しい」が相反することだと気づいているでしょうか? わたしにはどうなってほしいのかわかりません。
mi37

2018/12/18 06:39

選びやすいように候補から絞って選択後、別の候補に変えたい時に候補がない状態となるのを改善したいです。
x_x

2018/12/18 06:42

「絞り込みたいとき」と「すべて出したいとき」との操作が同じなら判別できません
mi37

2018/12/18 06:48

コンボが選ばれている状態を条件とするか、フォーカスが入った時等を条件に含めれば実現できそうな気がするのですが。
guest

回答2

0

datalistタグを利用して入力できるコンボを作ったのですが、
絞り込みができるおかげか、コンボから選んだあと、▼を押すと、選択リストは選んだものだけになってしまいます。

キー入力で選択肢を絞り込んだ後に一つの選択肢を選んだなら、その選択肢が入力されます。
[▼] で再び選択し直そうとしたなら、一つの選択肢しか出現しないのは当然の事で、選択肢を選ぶ前の候補が現れるのは直感に反する挙動だと思います。

代案としては、キーボード入力と選択肢を別々に用意する方法が考えられます。
(例: キーボード入力用のinput要素とselect,option要素を用意し、キー入力に応じて、option要素のdisplay値/disabled値をJavsScriptで変更して選択肢を制御する)

Te: mi37 さん

投稿2018/12/17 03:50

編集2018/12/17 03:53
think49

総合スコア18162

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

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

0

onfocusで入力文字列を保存しておいて、onblurで何も入力されていなかったら保存されている文字列を設定すればよいのではないでしょうか?

投稿2018/12/17 03:13

kasa0

総合スコア578

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問