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

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

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

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

Q&A

解決済

1回答

1107閲覧

テキストボックスの入力の内容によってDropDownList選択値を変更させたい

koko5899

総合スコア5

jQuery

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

0グッド

0クリップ

投稿2021/06/16 06:22

編集2021/06/16 07:23

前提・実現したいこと

お世話になります。

社内システムの改修を行っていますが、どうしてもできなくてどなたか教えてください。
イメージ説明
・やりたいこと
左側にテキストボックスに、会社コードを入力すると右側のリストに会社コードに相応する値を選択させるようにしたいです。

発生している問題・エラーメッセージ

テキストボックスにコードを入力しても選択値は変更しません。

該当のソースコード

self.searchCodeTest = function (data, event) {
code = $("#searchCompanyCode").val();
$("#option[value='" + code + "']", $("#ListCompanyCode")) ⇒ここの書き方がおかしいと思われる。
}

・・省略・・

<td> @Html.TextBox("searchCompanyCode", Model.CompanyCode, new { data_bind = "event:{keyup: searchCodeTest}" }) @Html.DropDownList("ListCompanyCode", emptyList, new { data_bind = "options: $root.masters.company, optionsValue: currentDatas.company.code, optionsText: 'longName', optionsCaption: '-選択してください-'" }) </td>

$root.masters.company⇒ControllからViewに返しているリスト
currentDatas.company.codey⇒ControllからViewに返している

上記でHTML文で、選択値変更以外は問題なく処理できています。@Html.DropDownList()の()の中で選択値の書き方ができてないように思います。

うまく書けてないかも知りませんが、よろしくお願いします。

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

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

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

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

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

episteme

2021/06/16 06:47

tagがCになってるけど、コレCじゃない。
koko5899

2021/06/16 07:25

申し訳ありません。修正しました。
guest

回答1

0

ベストアンサー

JQueryを用いているのであれば、選択肢を表示・非表示を切り替えるだけという簡単な方法があります。

参考になれば・・・。

(検索する会社コードのinput要素「id = searchCompanyCode」、ドロップダウン要素「id = ListCompanyCode」という前提で書いています。)

JQuery

1let code = $("#searchCompanyCode").val(); // 検索値取得 2$('#ListCompanyCode option[value="' + code + '"]').show(); // 非表示状態かもしれないので表示に切り替え 3$('#ListCompanyCode option[value!="' + code + '"]').hide(); // 不要な選択肢を非表示

投稿2021/06/16 06:47

hiro_app

総合スコア123

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

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

koko5899

2021/06/16 07:35

回答ありがとうございます。下記の通り書いてみましたが、だめでした。 self.searchCodeTest = function (data, event) { code = $("#searchCompanyCode").val(); $('#ListCompanyCode option[value="' + code + '"]').show() $('#ListCompanyCode option[value="' + code + '"]').hide() }
hiro_app

2021/06/16 08:09

どうダメだったのでしょうか? エラーが出ている? → エラー内容と解決に必要なソースの提示をお願いします この処理はちゃんと呼び出されていますか? → ご自身のソースの見直しを この処理実行直後に処理を停止させた場合でも同じですか? → 停止させ不要項目が消えているなら上書きしている処理がいる。消えていないならIDなどセレクタが誤っているなど複数の原因有 alertやconsole.logを設置して、現状がどうなっているのか把握し、詳細な報告をしてください。
hiro_app

2021/06/16 08:11

ちなみに、ソースに誤りがありますよ code = $("#searchCompanyCode").val(); $('#ListCompanyCode option[value="' + code + '"]').show() // $('#ListCompanyCode option[value="' + code + '"]').hide() $('#ListCompanyCode option[value!="' + code + '"]').hide() // 否定条件が正しい }
koko5899

2021/06/16 23:41

回答ありがとうございます。できました。 既存コードでDropDownListのoptionsValueの指定が間違っていました。 変更後 @Html.DropDownList("ListCompanyCode", emptyList, new { data_bind = "options: $root.masters.company, optionsValue: 'code’, optionsText: 'longName', optionsCaption: '-選択してください-'" }) Jqueryの部分は下記のようにしました。 self.searchCodeTest = function (data, event) { code = $("#searchCompanyCode").val(); $("#ListCompanyCode").val(code); }
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問