• ベストアンサー

dijit.form.ComboBoxについて

こんにちは Dojo v1.7で開発を行っている者です。 開発しているモジュールで、dijit.form.ComboBoxを使用しているのですが、 ドロップダウンリストの項目を入力不可(選択は可能)にしたいと思っています。 プロパティで、readOnly:trueを設定してしまいますと、ドロップダウンリストも読取り専用になってしまい、選択出来なくなってしまいます。 どなたか、上記問題の解決をご存知の方おりますでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Picosoft
  • ベストアンサー率70% (274/391)
回答No.2

お返事が大変遅くなりましたorz そういうことでしたらComboBoxを使わざるを得ませんね……。 ちょっと調査してみたところ、 「dijit.byId("widget_id").textbox」でコンボボックスのテキストボックス部分にアクセスできるようです。 そのため、  dijit.byId("widget_id").textbox.readOnly=true; と書けば、とりあえずはテキストボックス部分のみ入力不可にできます。 ですが、何かの拍子にDojoがreadOnlyの設定を戻してしまうことも考えられますので、 入念にテストした方がいいかもしれません。

BOTOWIN
質問者

お礼

たびたび、アドバイスをして頂きありがとうございます。 製品サポートの部隊の方にも伺いまして、ComboBoxを継承しているクラスを呼び出している場所に、以下の様に設定し、無事希望通りの動作になりました。 ■調査方法 ---------------------------------------------------------------------------------- 1. dijit/form/ComboBox.jsを確認すると、(ValidationTextBox.jsと)dijit/form/ComboBoxMixin.jsを継承している 2. dijit/form/ComboBoxMixin.jsを確認すると、templateとしてdijit/form/templates/DropDownBox.htmlを使用していることが確認できる 3. dijit/form/tesmplates/DropDownBox.htmlを確認すると、文字列入力用のinputタグが、data-dojo-attach-point属性によりfocusNodeという要素名でアクセスできることを確認できる 4. したがって、インスタンス生成後に{ComboBoxインスタンス}.focusNodeの属性としてreadonlyを付与することで、ユーザーからのテキスト入力だけ無効化出来ることが分かる ---------------------------------------------------------------------------------- ■上記処理を、呼び出し元から設定する require( ~"dojo/dom-attr"); function( domAttr ){    ~    ~    ~ }; var ABCD(※) = new ABCD(キー情報,"キー情報");   for (var i = 0; i < finder.level - 1; ++i) { domAttr.set(ABCD._selectors[i].focusNode, "readonly", "readonly");  } ); ※ABCDは、digit.form.ComboBoxを使用しているクラス 本当にありがとうございました(^^)/~

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Picosoft
  • ベストアンサー率70% (274/391)
回答No.1

dijit.form.Selectではダメですか?

BOTOWIN
質問者

お礼

Picosoftさん 早速の回答ありがとうございます。 開発では、パッケージソフトの機能を一部カスタマイズします。 dijit.form.ComboBoxは製品が提供している基本機能になりますので、 そこを別のメソッドを使用すると、大きく他の箇所も修正をする事になってしまいます。 その為、dijit.form.ComboBoxで実現させたいと思っております。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ComboBoxについて

    ComboBoxのアイテムリストからアイテムを選んだら 選んだアイテムに対応した別の文字列 をComboboxに表示したいと思います。 動き的には Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load  ComboBox1.Text = ""  ComboBox1.Items.Add("000")  ComboBox1.Items.Add("001")  ComboBox2.Text = ""  ComboBox2.Items.Add("0個目")  ComboBox2.Items.Add("1個目")  ComboBox2.Visible = False End Sub Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged  Select Case ComboBox1.SelectedIndex   Case 0    ComboBox1.Visible = False    ComboBox2.Visible = True    ComboBox2.SelectedIndex = 0   Case 1    ComboBox1.Visible = False    ComboBox2.Visible = True    ComboBox2.SelectedIndex = 1  End Select End Sub Private Sub ComboBox2_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox2.GotFocus  ComboBox1.Visible = True  ComboBox1.DroppedDown = True  ComboBox2.Visible = False End Sub こんな感じで、ComboBoxを二つ使えば実現できるのですが一つだけでも実現できる方法が ありましたら、教えてくださいませ。

  • エクセル 入力規則でドロップダウンリストが表示されない

    いつもお世話になります。 エクセル2000の入力規則のリストで、ドロップダウンリストを使って文字を入力したいのですが、ドロップダウンリスト"から選択する"にチェックを入れているのに、何故かドロップダウンのマークが 表示されません。

  • コンボボックスを読み取り専用にするには

    VB2005です。 コンボボックスを読み取り専用にしたいのですが、 TextBoxにはReadOnly=Trueにすれば読み取り専用になりますが ComboBoxを読み取り専用にしたい場合は、どうしたらよいのでしょうか?

  • Word2007のコンテンツコントロール難問ヘルプ

    選択肢の追加ダイアログボックス内の「値」について どうぞよろしくお願いします。 Windows XP Word2007 を使っています。 コンテンツコントロールを使ったフォームの作成を教えることがあるのですが、その際 開発タブ>コントロールグループ>ドロップダウンリスト(コンボボックス)を文書内に挿入後、 ドロップダウンリスト(コンボボックス)のプロパティから 「コンテンツコントロールのプロパティ」ダイアログボックス内にあるドロップダウンリストのプロパティで項目を追加していきます。 追加の際に出る、選択肢の追加ダイアログボックス内の「値」の意味や効果が分かりません。 よく「ここの意味は?」と聞かれるのですが、答えられず悩んでいます。 ネットで調べても見たのですが、該当するような回答も見つからずモンモンとしています。 どうか、何かの手がかりやヒントだけでも得られれば助かります。 お手数をかけますが、どうぞよろしくお願いいたします。

  • エクセルVBAでcmbBoxのプロパティの設定方法

    こんにちはよろしくお願いします。 ユーザーフォームにcomboBoxを作り,ドロップダウンするリストを設定するには,comboBoxのRowSourceプロパティに,アクティブシートのセルを a1:a5 などのようなかたちで設定しますよね。 このようなとき,ドロップダウンするデータをアクティブでない他のシートの中のセルを指定したいのですが,RowSourceプロパティにどのように設定すればよいのでしょうか?教えて下さい。 sheet5!a1:a5 などのように設定しても「プロパティの値が無効です。」というエラーが出てしまいます。どのように設定すればよいのでしょうか?教えて下さい。

  • フォームを作成しています。

    フォームを作成しています。 チェックボックスとドロップダウンリストを連動したいと思います。チェックボックスが選択されればその内容を送信できるけれど、チェックボックスがチェックされていないとドロップダウンリストは選択できないようにしたいと思います。10位のチェックボックスとドロップダウンリストの組み合わせを作りたいと思います。 どのようなコードを使えばいいでしょうか?CGIを使ってフォームを作成中です。 よろしくお願いします。

  • エクセル2007 ドロップダウンリスト

    vista利用の初心者です。 よろしくお願いします。 ドロップダウンリストで選択した後(後という表現が適切かどうかわかりませんが)の 計算式をご存じの方は教えてください。 たとえば  A1に5と入力しておきます。 B1にドロップダウンリストで あ50,い60,う65と設定しておきます。 C1には ドロップダウンリストであ50を選択した場合は A1の5×50の数値 い60選択で 5×60 ・・・の数値を設定したいと思っています。 どなたか詳しい方、よろしくお願い申し上げます。

  • コンボボックスについて

    コンボボックスでドロップダウンメニューが押された場合の処理は Private Sub ComboBox1_DropButtonClick() 処理 End Sub リスト項目がクリックされた時は Private Sub ComboBox1_Click() 処理 End Sub 上記の関数を組み合わせるにはどうすればよいでしょうか?用はComboBoxのドロップダウンメニューが押されて さらにリストの項目が選択してクリックした時はなんらかの処理を行うようにしたいのですがうまくいきません。よろしくお願い致します。

  • エクセル

    エクセルでドロップダウンリストのはいったセルを保護するとドロップダウンリスト自体も保護されてリストが使えません。どうしたらいいのでしょうか

  • 【iアプリ】選択した項目に連動して表示するコンポーネントを変更したい

    dojaをつかってiアプリを作りたいと思っている初心者です 実現したい内容は下記の通りです ========================================  [初期状態]   panelにドロップダウンリスト(ListBox.CHOICE)を表示  [実現したい内容]   1.ドロップダウンリストから1つ選択する   2.その内容に紐づく内容をドロップダウンリストの下に     アンカーテキストで表示する   3.再度ドロップダウンリストで他の項目を選択した場合、     今まで表示していたアンカーテキストをクリアし     新たに選択された内容に紐づく内容を     ドロップダウンリストの下に表示する ======================================== 2.までは実現できたのですが、3.の処理を行うにあたって 2.の内容をクリアする方法がわかりません また、2.で表示する項目の件数は選択した項目により変わります またこのような制御はiアプリでは一般的ではないのでしょうか? ご存知の方がいらっしゃいましたら是非ともよろしくお願いいたします

    • ベストアンサー
    • Java
このQ&Aのポイント
  • FAシステム機器の新規セットアップについてご教示ください。
  • プログラマブルターミナルのタッチパネルが悪くなり、新規品の交換を検討しています。
  • 新規品との交換は、結線後にプログラムを転送するだけで利用可能でしょうか?その他の手順も教えてください。
回答を見る