我有两个listbox,请问我在id为userlist的listbox中选择后,如何通过id为AddUser的按钮把选中的项添加到id为Incpt的listbox中?要求用javascript实现!请指教!
=====================================================================
<form id="Form1" method="post" runat="server"><table width="100%" cellpadding="2" cellspacing="0">
<tr>
<td width="40%" align="center">
<asp:ListBox id="UserList" runat="server" Width="90%">
<asp:ListItem Value=黎明>黎明</asp:ListItem></asp:ListBox>
</td>
<td width="20%">
<input type="button" id="UserAdd" value="添加用户" onclick="AddUser()"><br>
<br>
<input type="button" id="UserRemove" value="移除用户" onclick="RemoveUser()">
</td>
<td width="40%" align="center">
<asp:ListBox id="Incept" runat="server" Width="90%"></asp:ListBox></td>
</tr>
</table>
</form>
=====================================================================
<form id="Form1" method="post" runat="server"><table width="100%" cellpadding="2" cellspacing="0">
<tr>
<td width="40%" align="center">
<asp:ListBox id="UserList" runat="server" Width="90%">
<asp:ListItem Value=黎明>黎明</asp:ListItem></asp:ListBox>
</td>
<td width="20%">
<input type="button" id="UserAdd" value="添加用户" onclick="AddUser()"><br>
<br>
<input type="button" id="UserRemove" value="移除用户" onclick="RemoveUser()">
</td>
<td width="40%" align="center">
<asp:ListBox id="Incept" runat="server" Width="90%"></asp:ListBox></td>
</tr>
</table>
</form>
<table width="100%" cellpadding="2" cellspacing="0">
<tr>
<td width="40%" align="center">
<asp:ListBox id="UserList" runat="server" Width="90%">
<asp:ListItem Value="黎明">黎明</asp:ListItem>
<asp:ListItem Value="1">1</asp:ListItem>
<asp:ListItem Value="2">2</asp:ListItem>
<asp:ListItem Value="3">3</asp:ListItem>
<asp:ListItem Value="4">4</asp:ListItem>
<asp:ListItem Value="5">5</asp:ListItem>
<asp:ListItem Value="6">6</asp:ListItem>
<asp:ListItem Value="7">7</asp:ListItem>
</asp:ListBox>
</td>
<td width="20%">
<input type="button" id="UserAdd" value="添加用户" onclick="AddUser()"><br>
<br>
<input type="button" id="UserRemove" value="移除用户" onclick="RemoveUser()">
</td>
<td width="40%" align="center">
<asp:ListBox id="Incept" runat="server" Width="90%"></asp:ListBox></td>
</tr>
<script language="javascript">
function AddUser()
{
var objddl = document.getElementById("Incept");
var objTxt = document.getElementById("UserList");
for(var i=0;i<objTxt.options.length;i++)
{
if(objTxt.options[i].selected)
{
if(checkSameOption(objTxt.options[i].value,objddl))
{alert("你已经选择了"+objTxt.options[i].text+"项!");return false;};
var option=new Option(objTxt.options[i].text,objTxt.options[i].value);
objddl.options.add(option);
}
}
}
function checkSameOption(left,right)
{
var isSame=false;
if(right.options.length<=0)
isSame=false;
else
for(var i=0;i<right.options.length;i++)
{
if(left==right.options[i].value)
{isSame=true;break;}
}
return isSame
}function RemoveUser()
{
var objddl = document.getElementById("Incept");
var objTxt = document.getElementById("UserList");
if(objddl.options.length<=0)
{
alert("还没有可删除的项!");return false;
}
if(objddl.selectedIndex<0||objddl.selectedIndex>(objddl.options.length-1))
{
alert("请从右边列表中选择你要删除的项!");return false;
}
if(objddl.options.length<=0)
return false;
for(var i=0;i<objddl.options.length;i++)
{
if(objddl.options[i].selected)
{
objddl.options[i]=null;//remove(i)也可以
i--;
}
}
return false;
}</script>
</table>
</form>
呵呵,能实现了,还有一点点瑕疵,就楼主自己解决吧,呵呵
还有一个客户端的textbox,用于存放第一个listbox中的值的编号的
<form id="SelectReceiver" method="post" runat="server">
<table>
<tr>
<td><INPUT id="txtFlag" style="WIDTH: 88px; HEIGHT: 22px" type="text" size="9" name="txtFlag"</td>
</tr>
<TR>
<TD style="WIDTH: 191px" align="right" width="191" height="30">项目成员:</TD>
<TD height="30">
<TABLE id="Table3" cellSpacing="0" cellPadding="0" width="100%" border="0">
<TR align="center">
<TD style="WIDTH: 139px">
<asp:listbox id="listAccount" runat="server" Width="141" Height="160" SelectionMode="Multiple"></asp:listbox></TD>
<TD style="WIDTH: 33px"><INPUT class="buttoncss" style="WIDTH: 48px; HEIGHT: 24px" onclick="AddItem(this.name)"
type="button" value=">>>>" name="btnReceSendToRight"><BR>
<INPUT class="buttoncss" style="WIDTH: 48px; HEIGHT: 24px" onclick="RemoveItem(this.name)"
type="button" value="<<<<" name="btnReceSendToLeft">
</TD>
<TD align="left">
<asp:listbox id="listSendTo" runat="server" Width="141" Height="160" SelectionMode="Multiple"></asp:listbox>
</TD>
</TR>
</TABLE>
</TD>
</TR>
</table>
</form>
JavaScript代码
<script language="javascript">
function GetData()
{
listSendTo = eval("document.SelectReceiver.listSendTo");
document.getElementById("txtFlag").value="";
for(i=0;i<listSendTo.length;i++)
{
document.SelectReceiver.txtFlag.value+=listSendTo.options[i].value+",";
}
}
function AddItem(ControlName)
{
Control = null;
Control=eval("document.SelectReceiver.listSendTo");
var x=0;
var i=0;
var y=0;
listAccount=eval("document.SelectReceiver.listAccount");
listSendTo=eval("document.SelectReceiver.listSendTo");
var j=listAccount.length;
for(i=0;i<j;i++)
{
if(listAccount.options[i].selected==true)
{
if(Control.length==0)
{
Control.add(new Option(listAccount[i].text,listAccount.options[i].value));
listSendTo=eval("document.SelectReceiver.listSendTo");
//SelectReceiver.txtFlag.value+=listAccount.options[i].value+',';
continue;
}
else
{
for(x=0;x<listSendTo.length;x++)
{
if(listAccount.options[i].value==listSendTo.options[x].value)
{
y++;
}
}
}
if(y==0)
{
Control.add(new Option(listAccount[i].text,listAccount.options[i].value));
listSendTo=eval("document.SelectReceiver.listSendTo");
//SelectReceiver.txtFlag.value+=listAccount.options[i].value+','
}
}
}
}
function RemoveItem(ControlName)
{
Control = null;
Control=eval("document.SelectReceiver.listSendTo");
var j=Control.length;
if(j==0) return;
for(j;j>0;j--)
{
if(Control.options[j-1].selected==true)
{
Control.remove(j-1);
}
}
}
</script>在Page_Load中注册一下递交button,是将第二个listbox中的记录对应的编号保存到客户端的textbox中的.
btnSubmit.Attributes.Add("onclick","GetData();");递交的时候是如何得到客户端的textbox中保存的值
使用 string strEmp=Request["txtFlag"].ToString();
strEmp里面的编号可能有多个 之间是用逗号格开的还有注意一下啊<form>里面的id=SelectReceiver,在脚本中需要用到的
如果你基本功扎实,就算不太会JAVASCRIPT,也能够很快写出来
看别人的代码没用的,又不是你自己的!