大家帮帮忙select的问题。

julychina 2004-12-22 06:05:24
下面第一个函数是把选中部分从一个选择框到另一个选择框,第二个是把全部 的从一个到另一个
第三个函数跟第二个差不多,我是想把弹出窗口里的东西放到打开时的那个窗口里的一个select控件中去。但是textarea赋值可以,可是select增加就是不行,报这样的错误。“不支持此接口”求解决方法。

function movenode()
{
var len = arguments.length;
if(len==2){
var selone = eval("document.all."+arguments[0]+".options") ;
var selone2 = eval("document.all."+arguments[1]+".options") ;
if(selone.length>0){
for(i=selone.length-1;i>-1;i--){
if(selone.options[i].selected==true){
var newnode = selone.options[i].cloneNode(true);
selone.remove(i);
selone2.insertBefore(newnode);
}
}
}
}
}
//list框的移动函数movenode(var1,var2)及把var1中全部列移动到var2 @edit by linny
function movenodeall()
{
var len = arguments.length;
if(len==2){
var selone = eval("document.all."+arguments[0]+".options") ;
var selone2 = eval("document.all."+arguments[1]+".options") ;
if(selone.length>0){
for(i=selone.length-1;i>-1;i--){
var newnode = selone.options[i].cloneNode(true);
selone.remove(i);
selone2.insertBefore(newnode);
}
}
}
}
function retForm()
{
if (!opener) return true;
users_username = "";
users_uservalue="";
var selone_obj=eval("document.form1.users_list");
selone=selone_obj.options;
var selone2_obj=eval("opener.document.<?=$_REQUEST["form_name"]?>.<?=$_REQUEST["sel1"]?>");
selone2=selone2_obj.options;
opener.document.form1.textarea.value="dsfdsfdsfdsf";
for(var i=0; i<selone.length; i++) {
var newnode = selone.options[i].cloneNode(true);
selone.remove(i);
selone2.insertBefore(newnode);
}
self.close();
return false;
}
...全文
169 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
meizz 2004-12-23
  • 打赏
  • 举报
回复
一. 父窗口:
<form name=form1>
<select name=parentList>
<option>请选择
</select>
</form>

子窗口:
<select onchange="writeParentList(this.value)">
<option>请选择
<option value=aaa>aaa
<option value=bbb>bbb
<option value=ccc>ccc
<option value=ddd>ddd
<option value=eee>eee
</select>

<script language=javascript>
function writeParentList(str)
{
if(top==window) return; //若该页没有被 frame 则跳出
if(str=="") return;
if(parent.document.form1.parentList)
{
e = parent.document.form1.parentList;
var newOP=new Option(str, str, true, true);
for(var i=0; i<e.options.length; i++) //不重复
if(e.options[i].value == str) return;
e.options[e.options.length] = newOP;
}
}
</script>




二. opener关系:父窗口:
<form name=form1>
<select name=parentList>
<option>请选择
</select>
</form>
<script language=javascript>
function writeParentList(str)
{
if(str=="") return;
if(document.form1.parentList)
{
e = document.form1.parentList;
var newOP=new Option(str, str, true, true);
for(var i=0; i<e.options.length; i++) //不重复
if(e.options[i].value == str) return;
e.options[e.options.length] = newOP;
}
}
</script>

<input type=button value=ok onclick="window.open('ttt.htm','meizz')">


子窗口:
<select onchange="if(window.name!='')opener.writeParentList(this.value)">
<option>请选择
<option value=aaa>aaa
<option value=bbb>bbb
<option value=ccc>ccc
<option value=ddd>ddd
<option value=eee>eee
</select>
easyreal 2004-12-23
  • 打赏
  • 举报
回复
retForm() 函数中的for循环应该从大到小:
for(var i=selone.length-1; i>=0; i--),因为执行了remove操作,从小到大是不行的
julychina 2004-12-23
  • 打赏
  • 举报
回复
拜托,在一个页面中我已经做出来了,你那个比我的还更得很复杂,还又慢。
meizz 2004-12-23
  • 打赏
  • 举报
回复
<table border=0 cellpadding=0 cellspacing=0><form name=meizz>
<tr><td>
<select id=list1 size=8 ondblclick="moveOption(this, this.form.list2)">
<option value=A>aaaaaaaaaa
<option value=B>bbbbbbbbbb
<option value=C>cccccccccc
<option value=D>dddddddddd
<option value=E>eeeeeeeeee
<option value=F>ffffffffff
<option value=G>gggggggggg
<option value=H>hhhhhhhhhh
</select></td>
<td width=40 align=center>
<input name=add type=button value=">>>" onclick="moveOption(this.form.list1, this.form.list2)"><br><br>
<input name=sub type=button value="<<<" onclick="moveOption(this.form.list2, this.form.list1)">
</td><td>
<select id=list2 size=8 ondblclick="moveOption(this, this.form.list1)">
</select>
</td></tr></form>
</table>

<script language="JavaScript"><!--
function moveOption(e1, e2){
try{
var e = e1.options[e1.selectedIndex];
e2.options.add(new Option(e.text, e.value));
e1.options.remove(e1.selectedIndex);
} catch(e){}
}
//--></script>
julychina 2004-12-23
  • 打赏
  • 举报
回复
晕死了,看最上面。下面是代码。我想把弹出窗口中的列表框中的内容放到弹出它的页面里的一个列表框中,现若向主窗口赋值可以的。但是向主窗口中的控件发增加行就不行了。
MYLiao 2004-12-23
  • 打赏
  • 举报
回复
up
csdngjm 2004-12-23
  • 打赏
  • 举报
回复
怎么搞定的共享一下吧!
Clove 2004-12-23
  • 打赏
  • 举报
回复
meizz(梅花雪) ( ) 已经搞定了
我就来看看玩了
梅雪香 2004-12-22
  • 打赏
  • 举报
回复
说了这么多,你倒底想问什么呀?看不明白~

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧