两个下拉框的解决问题(在线等待) 附加问题:如果A的选项为d,则B变为一个type=text的文本框。我本来是想写几个下拉框和文本框,然后用form.B.visibility='hidden',结果行不通。各位高手请帮忙解决! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <SELECT NAME="A" onchange="selclick(this.value)"><option value=a>a</option><option value=b>b</option><option value=c>c</option><option value=d>d</option></SELECT><div id=sel></div><SCRIPT LANGUAGE="JavaScript"><!--var a_ar = new Array(1,2,3);var b_ar = new Array('a','b','c');var c_ar = new Array('x','y','z');init();function init(){ selclick(document.all.A.value);}function selclick(v){ var tmp=""; switch(v){ case "a": tmp=getSel(a_ar); break; case "b": tmp=getSel(b_ar); break; case "c": tmp=getSel(c_ar); break; case "d": tmp="<input type=text name=dtext>"; break; default: break; } sel.innerHTML=tmp; }function getSel(ar){ var tmp="<select name=B>"; for (var i=0;i<ar.length;i++){ tmp += "<option value="+ar[i]+">"+ar[i]+"</option>" } tmp+="</select>"; return tmp;}//--></SCRIPT> <form name=form1><select name=sheng onchange="cityName(this.value)"> <option value="">请选择省名</option></select><select name=city> <option value="">请选择城名</option></select></form><script language=javascript>var cityouterHTML = document.form1.city.outerHTML.substr(0, document.form1.city.outerHTML.length-9);function sheng(){ var shengName = ["浙江", "江苏", "安徽", "江西"]; //这些数据可以从数据库中取得 var e = document.form1.sheng; var s = e.outerHTML.substr(0, e.outerHTML.length-9) + "\r\n"; for (var i=0; i<shengName.length; i++){ s += "<option value='"+ shengName[i] +"'>"+ shengName[i] +"</option>\r\n";} s += "</select>"; e.outerHTML = s;} sheng();function cityName(val){ var 浙江 = ["杭州", "宁波", "温州", "绍兴", "金华", "湖州"]; var 江苏 = ["南京", "苏州", "无锡", "常州", "镇江", "徐州"]; var 安徽 = ["合肥", "翕县", "黄山", "祁门", "休宁"]; var 江西 = ["南昌", "九江", "赣州", "上饶", "新余", "景德镇"]; //这些数据可以从数据库中取得 var e = document.form1.city; var s = cityouterHTML; if (val == "") {s += "</select>"; e.outerHTML = s; return;} var a = eval(val); for (var i=0; i<a.length; i++) { s += "<option value='"+ a[i] +"'>"+ a[i] +"</option>\r\n"; } s += "</select>"; e.outerHTML = s;}</script> <SELECT NAME="A" onchange="B.innerHTML='';for(i=0;i<eval(value+value).length;i++) B.options[B.options.length]=new Option(eval(value+value)[i],eval(value+value)[i])"><option value=a>a</option><option value=b>b</option><option value=c>c</option></SELECT><SELECT NAME="B" onchange="alert(this.value)"></SELECT><script>var aa=new Array("1","2","3","4","5","6","7","8","9","10","11","12")var bb=new Array("a","b","c","d","e")var cc=new Array("x","y","z",".........")</script> 我明白你的意思了,你说的两个下拉框是连动的!最简单的方法是有XML技术来实现!这是我们写的一个例子!function ChangeEquipStation1(){ var strXPath = "recordset/row[SBStationID=\"" + oFormPlan.oSelectApplyStation.value + "\"" + " and EquipStationID=\"" + oFormPlan.oSelectEquipStation1.value + "\"" + " and EquipmentType=\"" + oFormPlan.oSelectEquipType1.value + "\"]"; var xltRows = xmlSEquip.selectNodes( strXPath ); SetComBoxByXmlList(oFormPlan.oSelectSEquip1,xltRows,"EqAutoNo","FullName");}function ChangeEquipStation2(){ var strXPath = "recordset/row[SBStationID=\"" + oFormPlan.oSelectApplyStation.value + "\"" + " and EquipStationID=\"" + oFormPlan.oSelectEquipStation2.value + "\"" + " and EquipmentType=\"" + oFormPlan.oSelectEquipType2.value + "\"]"; var xltRows = xmlSEquip.selectNodes( strXPath ); SetComBoxByXmlList(oFormPlan.oSelectSEquip2,xltRows,"EqAutoNo","FullName");}function SetComBoxByXmlList(objCombox,xltSelected,strFldName_Code,strFldName_Caption){ ClearCombox(objCombox); if( xltSelected == null ) return false; strXPath_Code = strFldName_Code; strXPath_Caption = strFldName_Caption; var objOption; for(var i=0;i<xltSelected.length;i++) { objOption = document.createElement("OPTION"); objCombox.options.add(objOption); objOption.innerText = xltSelected[i].selectSingleNode(strXPath_Caption).text; objOption.value = xltSelected[i].selectSingleNode(strXPath_Code).text; }} 如何快速入门啊JAVASCRIPT 一些对象的属性 一个Javascript解析Json的问题 JS截取字符串成数组 请问:如何用JS设置循环多个img的src值? 捕获键盘事件问题 怎样通过JS检测上传文件的扩展名符合要求(数组) 如何在网页中装载一个xml文件? 谁能实现类似"选择文件"的效果:从另一个页面取一个值到本页面的输入框中而不刷新页面??? express+nodejs的问题 很奇怪的现象 请大家帮忙,在线等:如何在表格栏中显示复选框的值? 怎样实现在使用confirm()函数同时打开另外一个窗口 ?
<option value=a>a</option>
<option value=b>b</option>
<option value=c>c</option>
<option value=d>d</option>
</SELECT>
<div id=sel></div>
<SCRIPT LANGUAGE="JavaScript">
<!--
var a_ar = new Array(1,2,3);
var b_ar = new Array('a','b','c');
var c_ar = new Array('x','y','z');
init();
function init(){
selclick(document.all.A.value);
}
function selclick(v){
var tmp="";
switch(v){
case "a":
tmp=getSel(a_ar);
break;
case "b":
tmp=getSel(b_ar);
break;
case "c":
tmp=getSel(c_ar);
break;
case "d":
tmp="<input type=text name=dtext>";
break;
default:
break;
}
sel.innerHTML=tmp;
}
function getSel(ar){
var tmp="<select name=B>";
for (var i=0;i<ar.length;i++){
tmp += "<option value="+ar[i]+">"+ar[i]+"</option>"
}
tmp+="</select>";
return tmp;
}
//-->
</SCRIPT>
<option value="">请选择省名</option>
</select><select name=city>
<option value="">请选择城名</option>
</select></form><script language=javascript>
var cityouterHTML = document.form1.city.outerHTML.substr(0, document.form1.city.outerHTML.length-9);
function sheng()
{
var shengName = ["浙江", "江苏", "安徽", "江西"]; //这些数据可以从数据库中取得 var e = document.form1.sheng;
var s = e.outerHTML.substr(0, e.outerHTML.length-9) + "\r\n";
for (var i=0; i<shengName.length; i++){
s += "<option value='"+ shengName[i] +"'>"+ shengName[i] +"</option>\r\n";}
s += "</select>";
e.outerHTML = s;
} sheng();
function cityName(val)
{
var 浙江 = ["杭州", "宁波", "温州", "绍兴", "金华", "湖州"];
var 江苏 = ["南京", "苏州", "无锡", "常州", "镇江", "徐州"];
var 安徽 = ["合肥", "翕县", "黄山", "祁门", "休宁"];
var 江西 = ["南昌", "九江", "赣州", "上饶", "新余", "景德镇"];
//这些数据可以从数据库中取得 var e = document.form1.city;
var s = cityouterHTML;
if (val == "") {s += "</select>"; e.outerHTML = s; return;}
var a = eval(val);
for (var i=0; i<a.length; i++)
{
s += "<option value='"+ a[i] +"'>"+ a[i] +"</option>\r\n";
}
s += "</select>";
e.outerHTML = s;
}
</script>
<SELECT NAME="A" onchange="B.innerHTML='';for(i=0;i<eval(value+value).length;i++) B.options[B.options.length]=new Option(eval(value+value)[i],eval(value+value)[i])">
<option value=a>a</option>
<option value=b>b</option>
<option value=c>c</option>
</SELECT>
<SELECT NAME="B" onchange="alert(this.value)"></SELECT>
<script>
var aa=new Array("1","2","3","4","5","6","7","8","9","10","11","12")
var bb=new Array("a","b","c","d","e")
var cc=new Array("x","y","z",".........")
</script>
最简单的方法是有XML技术来实现!
这是我们写的一个例子!function ChangeEquipStation1()
{
var strXPath = "recordset/row[SBStationID=\"" + oFormPlan.oSelectApplyStation.value + "\""
+ " and EquipStationID=\"" + oFormPlan.oSelectEquipStation1.value + "\""
+ " and EquipmentType=\"" + oFormPlan.oSelectEquipType1.value + "\"]";
var xltRows = xmlSEquip.selectNodes( strXPath );
SetComBoxByXmlList(oFormPlan.oSelectSEquip1,xltRows,"EqAutoNo","FullName");
}function ChangeEquipStation2()
{
var strXPath = "recordset/row[SBStationID=\"" + oFormPlan.oSelectApplyStation.value + "\""
+ " and EquipStationID=\"" + oFormPlan.oSelectEquipStation2.value + "\""
+ " and EquipmentType=\"" + oFormPlan.oSelectEquipType2.value + "\"]";
var xltRows = xmlSEquip.selectNodes( strXPath );
SetComBoxByXmlList(oFormPlan.oSelectSEquip2,xltRows,"EqAutoNo","FullName");
}
function SetComBoxByXmlList(objCombox,xltSelected,strFldName_Code,strFldName_Caption)
{
ClearCombox(objCombox);
if( xltSelected == null ) return false;
strXPath_Code = strFldName_Code;
strXPath_Caption = strFldName_Caption;
var objOption;
for(var i=0;i<xltSelected.length;i++)
{
objOption = document.createElement("OPTION");
objCombox.options.add(objOption);
objOption.innerText = xltSelected[i].selectSingleNode(strXPath_Caption).text;
objOption.value = xltSelected[i].selectSingleNode(strXPath_Code).text;
}
}