| Index |

[JavaScript] (動的に)項目の追加と削除

二つのフィールド ( SELECT BOX ) 間で項目の追加・削除を簡単に行うためのスクリプト。
一方をリスト、他方を選択項目として、リスト側の SELECT BOX の項目を for ループなどで DB の項目を表示する、選択側をブランク(または初期値)にしておくなどで、フォーム作成に利用可能。
ただし、次画面への送信には、JavaScript で取得した値を hidden フィールドに代入してから submit する必要がある。

※ 画面がリロードされると初期状態に戻るので、その点は要注意。

------スクリプト------


<SCRIPT language=”JavaScript”>
<!–
function addItem(){// 追加
 if (document.docForm.item2.value == “”) return;
 
 for (i = 0; i < document.docForm.item2.length; i++) {
  if (document.docForm.item2.options[i].selected) {
   var txt = document.docForm.item2.options[i].value;
   
   // 追加(item1)
   var len = document.docForm.item1.length;
   document.docForm.item1.options[len] = new Option(txt, txt);
   
   // 削除(item2)
   document.docForm.item2.options[i] = null;
   
   i–;
  }
 }
}
 
function deleteItem(){// 削除
 if (document.docForm.item1.length == 0 || document.docForm.item1.selectedIndex == -1) return;
 
 for (i = 0; i < document.docForm.item1.length; i++) {
  if (document.docForm.item1.options[i].selected) {
   var txt = document.docForm.item1.options[i].value;
   
   // 削除(item1)
   document.docForm.item1.options[i] = null;
   
   // 追加(item2)
   var len = document.docForm.item2.length;
   document.docForm.item2.options[len] = new Option(txt, txt);
   
   i–;
  }
 }
 
}
 
function toNext(){
 var v=”";
 for (i = 0; i < document.docForm.item1.length; i++) {
  v = v + “,” + document.docForm.item1.options[i].value;
 }
 
 document.docForm.item.value = v;
 
 //document.docForm.action = “inputtop.asp”;
 //document.docForm.target = “right”;
 document.docForm.submit();
}
 
// –>
</SCRIPT>
 

------フォーム------


<FORM name=”docForm” action=”TEST.php” method=”get”>
<table>
<tr>
<td width=”100″>
<SELECT name=”item2″ size=”20″ multiple>
<OPTION value=”ラーメン”>ラーメン</OPTION>
<OPTION value=”ギョウザ”>ギョウザ</OPTION>
<OPTION value=”カラアゲ”>カラアゲ</OPTION>
<OPTION value=”チャーハン”>チャーハン</OPTION>
<OPTION value=”ヤキソバ”>ヤキソバ</OPTION>
</SELECT>
</td>
<td width=”50″>
<INPUT type=”button” value=”追加→” onClick=”addItem();”><BR>
<BR>
<INPUT type=”button” value=”←削除” onClick=”deleteItem();”><BR>
</td>
<td width=”100″>
<SELECT name=”item1″ size=”20″ multiple>
<OPTION value=”サラダ”>サラダ</OPTION>
<OPTION value=”パスタ”>パスタ</OPTION>
<OPTION value=”スープ”>スープ</OPTION>
<OPTION value=”ステーキ”>ステーキ</OPTION>
<OPTION value=”ジェラート”>ジェラート</OPTION>
</SELECT>
<input type=”hidden” name=”item” value=”">
</td>
</tr>
</table>
<BR>
<BR>
<input name=”" type=”button” value=”送信” onClick=”toNext()”>
</FORM>
 

自宅サーバーWebRing << 前 |ID=231 |次 >> 乱移動前後5表示サイト一覧