![]() |
| カレッヂ |
質問者 難民
投稿日 2005/12/17(土) 20:32:01
初めまして、仕事で画面を作成することになったのですが、Java Scrptの 使用は初めてのため、以下の点でつまづいております。 環境はWindowsXP Pro、IE6.0です。 同一FORM内に、2つのリストボックスを設置し、左側のリストボックスで 選択した項目(複数)を、ボタンを押下することにより右側のリストボックスに 移動させる、または右側から左側に移動させる方法を教えていただきたいです。 イメージとしては、Outlook Expressので、アドレス一覧から送信アドレスを 複数選択し、送信欄に設定する感じでしょうか? 異なる点は、選択された項目が移動元のリストボックスからはなくなるところ です。 よろしくお願いします。
【習熟度】初めて |
回答者 m035
[削除]
投稿日 2006/1/6(金) 01:19:00
適当ですがサンプルを書いてみました。
<html>
<head>
<script type="text/javascript">
<!--
function move(a,b){
var f=document.forms[0];
if(f["sel"+a].length>0&&f["sel"+a].selectedIndex>-1&&f["sel"+a].options[f["sel"+a].selectedIndex].value.length>0){
var s=f["sel"+a].options[f["sel"+a].selectedIndex];
input(b,s.text,s.value);
f["sel"+b].size=f["sel"+b].length;
f["sel"+b].selectedIndex=0;
for(var i=0,j=0;i<f["sel"+a].length;i++){
s=f["sel"+a].options[i];
if(i!=f["sel"+a].selectedIndex){
f["sel"+a].options[j]=new Option(s.text,s.value);
j++;
}
}
f["sel"+a].length--;
f["sel"+a].selectedIndex=0;
}
}
function input(a,b,val){
var f=document.forms[0];
f["sel"+a].options[f["sel"+a].length]=new Option(b,val);
f["sel"+a].size=f["sel"+a].length;
}
//-->
</script>
</head>
<body>
<form>
<select name="sel1" size="0">
</select>
<select name="sel2" size="0">
</select><br>
<script type="text/javascript">
<!--
var v1=[["佐藤","satou@hoge.co.jp"],["鈴木","suzuki@hoge.com"],["伊藤","ito@hoge.ne.jp"]];
var v2=[["高橋","takahasi@hoge.com"],["山田","yamada@hoge.co.jp"]];
//["表示内容","データ(value)"]の形で書いてあり、アドが長すぎる場合に省略して表示することを考え、
//表示内容と実際にそのoptionの持つvalueを分けてみました。
for(var i=0;i<v1.length;i++)input(1,v1[i][0],v1[i][1]);
for(var i=0;i<v2.length;i++)input(2,v2[i][0],v2[i][1]);
//-->
</script>
<input type="button" value="→" onclick="move(1,2)">
<input type="button" value="←" onclick="move(2,1)">
</form>
</body>
</html> |
返信(回答)する
| Web裏技 |