親ウインドウからボタンを押下することで子ウインドを開きます。
子ウインドにはユーザ名とユーザ名ごとにチェックボックスが表示されます。
html
1#親ウインドウのjsp(抜粋) 2 3<html:select property="userList" multiple="multiple" styleId="multiselect"> 4 <html:iterate> 5 //userListから値を取得しセレクトボックスの中身を生成 6 </html:iterate> 7</html:select>
親ウインドウにはユーザ名が並んだセレクトボックスがあります。
html
1#子ウインドウのjsp(抜粋) 2 3function select(){ 4 var list = [] 5 $("[type=checkbox]:checked").each(function){ 6 list.push($this.val()); 7 }) 8 9 // 親ウインドウのセレクトボックスで選択されている値を取得 10 ★window.opener.document.getElementById("multiselect").val; 11 //子ウインドウのチェックボックスで選択された値をセット 12 ☆window.opener.document.getElementById("multiselect").value=list; 13 14 var winObj = window.opne('','selectWindow'); 15 winObj.cloce(); 16} 17 18 19 //以降にユーザのチェックボックスを実装 20 //閉じるボタン押下時にfunction selectを呼ぶ
子ウインドウには親ウインドウと同様のユーザ名が並び、それぞれにチェックボックスを実装しています。
チェックボックスは複数選択可能(multibox)です。
実現したいことは、以下の通りです。
・親ウインドウのセレクトボックスで選ばれた値を子ウインドウを開く受け渡し、チェックボックスを選択状態にする。
・子ウインドウのチェックボックスで選択された値を親ウインドウに渡し、セレクトボックスの値を選択状態する。
具体的に困っているのは以下の通りです。
★で親ウインドウから相対を取得したいのですが、親ウインドウのセレクトボックスで複数値が選択されている場合、どう受け取ればいいのでしょうか。1つしか選択されていない場合は★のような実装で、変数で受け取ればうまくいきました。
セレクトボックスの内容はlistのサイズによって変わるので、iterateで回しながら表示しており、値それぞれに個別のidやnameがないのでmultiselectというidで選択されている値の配列(?)が取得できればと思っています。
まだ、受け渡された値のセレクトボックス/チェックボックスを選択状態にするところまで進めていないのでまた質問させていただくかもしれません。
ご教授お願いします。
※スペルミスがありましたら申し訳ありません。
あなたの回答
tips
プレビュー