谁能帮帮我?一个下拉列表框的问题.
请看下面代码:
问题是提交表单后如何获得列表框jobarea[]的数据.
<SCRIPT language=JavaScript>
function GetObjID(ObjName)
{
for (var ObjID=0; ObjID < window.powersearch.elements.length; ObjID++)
if ( window.powersearch.elements[ObjID].name == ObjName )
{ return(ObjID);
break;
}
return(-1);
}
function AddItem(ObjName, DesName, CatName)
{
//GET OBJECT ID AND DESTINATION OBJECT
ObjID = GetObjID(ObjName);
DesObjID = GetObjID(DesName);
// window.alert(document.powersearch.elements[DesObjID].length);
k=0;
i = document.powersearch.elements[ObjID].options.length;
if (i==0)
return;
maxselected=0
for (h=0; h<i; h++)
if (document.powersearch.elements[ObjID].options[h].selected ) {
k=k+1;
maxselected=h+1;
}
if (maxselected>=i)
maxselected=0;
if ( document.powersearch.elements[DesObjID].length + k >5 ) {
window.alert("最多可选择5条");
return;
}
if (CatName != "")
CatObjID = GetObjID(CatName);
else
CatObjID = 0;
if ( ObjID != -1 && DesObjID != -1 && CatObjID != -1 )
{ jj = document.powersearch.elements[CatObjID].selectedIndex;
if ( CatName != "")
{ CatValue = document.powersearch.elements[CatObjID].options[jj].text;
CatCode = document.powersearch.elements[CatObjID].options[jj].value;
}
else
CatValue = "";
i = document.powersearch.elements[ObjID].options.length;
j = document.powersearch.elements[DesObjID].options.length;
for (h=0; h<i; h++)
{ if (document.powersearch.elements[ObjID].options[h].selected )
{ Code = document.powersearch.elements[ObjID].options[h].value;
Text = document.powersearch.elements[ObjID].options[h].text;
j = document.powersearch.elements[DesObjID].options.length;
if (Text.indexOf('--不限--')!=-1) {
for (k=j-1; k>=0; k-- ) {
document.powersearch.elements[DesObjID].options[k]=null;
}
j=0;
}
if (Text.substring(0,1)=='-' && Text.substring(1,2)!='-') {
for (k=j-1; k>=0; k-- ) {
if (((document.powersearch.elements[DesObjID].options[k].value).substring(0,2))==(Code.substring(0,2)))
document.powersearch.elements[DesObjID].options[k]=null;
}
j= document.powersearch.elements[DesObjID].options.length;
}
HasSelected = false;
for (k=0; k<j; k++ ) {
if ((document.powersearch.elements[DesObjID].options[k].text).indexOf('--不限--')!=-1){
HasSelected = true;
window.alert('已经包括本选项:'+Text);
break;
}
//else if ((document.powersearch.elements[DesObjID].options[k].text).indexOf('-')!=-1
else if ((document.powersearch.elements[DesObjID].options[k].text).substring(0,1) == '-'
&& ((document.powersearch.elements[DesObjID].options[k].value).substring(0,2)==Code.substring(0,2))){
HasSelected = true;
window.alert('已经包括本选项:'+Text);
break;
}
if (document.powersearch.elements[DesObjID].options[k].value == Code)
{ HasSelected = true;
break;
}
}
if ( HasSelected == false)
{
Text = trimPrefixIndent(Text);
if (CatValue !="")
{
Location = GetLocation(DesObjID, CatValue);
if ( Location == -1 )
{
document.powersearch.elements[DesObjID].options[j] = new Option("---"+CatValue+"---",CatCode);
document.powersearch.elements[DesObjID].options[j+1] = new Option(Text, Code);
}//if
else
{
InsertItem(DesObjID, Location+1);
document.powersearch.elements[DesObjID].options[Location+1] = new Option(Text, Code);
}//else
}
else
{
document.powersearch.elements[DesObjID].options[j] = new Option(Text, Code);
}
}//if
document.powersearch.elements[ObjID].options[h].selected =false;
}//if
}//for
document.powersearch.elements[ObjID].options[maxselected].selected =true;
}//if
}//end of function
function DeleteItem(ObjName)
{
ObjID = GetObjID(ObjName);
minselected=0;
if ( ObjID != -1 )
{
for (i=window.powersearch.elements[ObjID].length-1; i>=0; i--)
{ if (window.powersearch.elements[ObjID].options[i].selected)
{ // window.alert(i);
if (minselected==0 || i<minselected)
minselected=i;
window.powersearch.elements[ObjID].options[i] = null;
}
}
i=window.powersearch.elements[ObjID].length;
if (i>0) {
if (minselected>=i)
minselected=i-1;
window.powersearch.elements[ObjID].options[minselected].selected=true;
}
}
}
function trimPrefix(str,prefix)
{
var tmpstr = str;
var len = prefix.length;
//alert("char code:"+tmpstr.charCodeAt(0));
//alert(tmpstr.substring(0,len));
if(tmpstr.substring(0,len) == prefix)
//if(prefix.indexOf(tmpstr.substring(0,len)) != -1)
{
tmpstr = tmpstr.substr(len);
}
return tmpstr;
}
function trimPrefixIndent(str)
{
//(2004-01-18,by Fred)space in Option.text is unicode 160
var prefixIndent = String.fromCharCode(160,160)+"--";
return trimPrefix(str,prefixIndent);
}
</SCRIPT>
<FORM class=formfix name=powersearch action=/sc/my_se.php
method=post>
<CENTER>
<BR>
<TABLE cellSpacing=3 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width="40%"><SELECT style="WIDTH: 250px" multiple size=4
name=Areaca>
<OPTION value=0000 selected>--不限--</OPTION>
<OPTION value=0100>北京市</OPTION>
<OPTION
value=0200>上海市</OPTION>
<OPTION
value=0300>广东省</OPTION>
<OPTION
value=0302> --广州市</OPTION>
<OPTION
value=0303> --惠州市</OPTION>
<OPTION
value=0304> --汕头市</OPTION>
<OPTION
value=0305> --珠海市</OPTION>
<OPTION
value=0306> --佛山市</OPTION>
<OPTION
value=0307> --中山市</OPTION>
<OPTION
</SELECT> </TD>
<TD align=middle width="25%"><INPUT onclick="JavaScript:AddItem('Areaca','jobarea[]', '')" type=button value="添加>>" name="Input">
<BR> <INPUT onclick="JavaScript:DeleteItem('jobarea[]')" type=button value="<<删除" name="Input">
</TD>
<TD width="35%"><SELECT style="WIDTH: 170px" multiple size=4
name=jobarea[]>
</SELECT> </TD>
</TR>
</TBODY>
</TABLE>
<BR>
<BR>
</center>
</FORM>