![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
⑤の「開く」を押すと④で選択された要素に対応した⑥以降のメニューがダイアログに表示されるというプログラムを書きたいのですがdocument.getElementByIdが上手く動いてくれません
最初の挙動としては '#dlg'+no のno初期値に100が入っているので開くを押すとダイアログには要素1のメニューが表示されます。noを200や300に変えるとちゃんと対応したメニューが開きます
しかしセレクトボックス経由でnoを書き換えるとダイアログが開かなくなってしまいます。
そこで試しに$( '#dlg'+no )を$( '#dlg'+nn)に書き換えnn経由で開く事にし、セレクトボックスでnoをいじり③の出力を見るとdocument.getElementByIdはdialog()内で対応した数字をちゃんと拾ってくれています。(セレクトで要素3を選ぶと300とalertします)
また、$( '#dlg'+no )を$( '#dlg'+100 )や$( '#dlg'+200 )にしても対応したメニューが開きます
ただ$( '#dlg'+no )にするとどうしてもダイアログが開かなくなってしまいます・・
自分では( '#dlg'+no )=dlg100になってると思うのですが内部ではそうでないみたいで・・
どうか良い方法はないでしょうか?
まとめますとセレクトした要素に対応したメニューをダイアログに表示するというプログラムになります。
<head>
<script>
var no = 100;//①
vay nn = 100;//②
function youso(){
no = document.getElementById("list").value;
}
jQuery( function() {
$( '#dlg'+no ) . dialog( {
buttons: {'決定': function() {
alert(no);//③
//ダイアログ内の処理
},
'取消': function() {
//キャンセルして閉じる
$( this ) . dialog( 'close' );},},
});});
//ダイアログを開く
function dlgOpen(){$( '#dlg'+no ) . dialog( 'open' );}//ダイアログオープン
</script>
</head>
<body>
<form><select id="list" onchange="youso()"> ④
<OPTION value="100">要素1</OPTION>
<OPTION value="200">要素2</OPTION>
<OPTION value="300">要素3</OPTION>
<SELECT></form>
<input type="button" value="開く" onclick="dlgOpen()" /> ⑤
<div id="dlg100" > ⑥~
要素1のメニュー
</div>
<div id="dlg200" >
要素2のメニュー
</div>
<div id="dlg300" >
要素3のメニュー
</div>
</body>
No.1ベストアンサー
- 回答日時:
ページ読み込み時の処理 jQuery( function() { ... } ) で行っている内容は、
ダイアログ機能の初期化と推測します。
ですが、すべてのダイアログを対象とすべきところを、
ご提示のソースでは一つしか行っていません。
以下のように、可能性のあるすべてを対象に初期化しては如何でしょうか
jQuery(function(){
_ $('#list option').each(function(){
_ _ var sel = '#dlg' + $(this).val();
_ _ $(sel).dialog({button:{初期化パラメーター}});
_ });
});
ありがとうございます! 頂いた書式は少し変更しましたがようは要素2と要素3のHTMLが読み込めていない常態で呼び出そうとしていたのが原因でした(汗
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript プログラムがうまく動きませんレビューお願いします 1 2022/07/10 05:08
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- その他(プログラミング・Web制作) Pythonで会員サイトの自動ログイン ID Nameがない 1 2022/12/16 02:09
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<a>タグのテキストを取得
-
ActiveXobjectが作成できない
-
innerHTML実行後のイベント
-
【Tabキー】特定の範囲内だけで...
-
テキストボックスがブランクの...
-
ブラウザに応じたJavaScriptの...
-
フレームでページ内検索機能
-
同じIDで定義した要素の配列を...
-
C#OpenCv V4にのエラーに関する...
-
GASでundefinedエラーが出ます
-
C#テキストボックスの文字を配...
-
window.openでタイトル名の指定
-
functionから別のfunctionを実...
-
クリッカブルマップのリンク部...
-
JAVAスクリプトで指定時間以降...
-
undefinedを表示させない方法は...
-
Vb.netのグローバル変数の宣言...
-
googleスプレッドシートのApps ...
-
シンプルなweb版スタンプラリー...
-
DOM要素を削除しても、イベント...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<a>タグのテキストを取得
-
任意の座標をクリックさせるには
-
ActiveXobjectが作成できない
-
innerHTML実行後のイベント
-
Click回数を数え、規定された回...
-
HTML:Tableタグに対し、JavaScr...
-
JavaScriptでオブジェクトを取...
-
onchangeイベントを使ってspan...
-
【Tabキー】特定の範囲内だけで...
-
モーダルダイアログウィンドウ...
-
重複しないくじの作り方がわか...
-
javascript 特定のタグのidの存...
-
配列の大括弧と丸括弧はどう違う?
-
javascriptであるボタンを押す...
-
「nullまたはオブジェクトでは...
-
div要素内の全input要素をdisable
-
onclickを使わずにイベント処理...
-
画像上のクリックした場所が分...
-
RadioButtonListの表示制御
-
javascriptで自動計算フォーム...
おすすめ情報