给select赋值问题 从数据库中读取一个值,将这个值赋给网页SESECT元素初始的显示值.怎么写代码?请高手指教.我的SELECT元素是关联的两个,是用JS编写的二级联动菜单.没有OPTION项. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 详细描述一下你的需求吧,不太理解什么叫没有option的select? 拿省市的那个联动来说页面加载完后,运行document.forms[0].省.value = "你数据库里传来的值(省)";// 这个省的值变化应该就改变了市的值咯, 执行一下, 然后document.forms[0].市.value = "你数据库里传来的值(市)"; 初始条件:当打开AA.ASP文件时,通过修改菜单office1和office2的选定情况,将数据写入数据库。问题:当打开AA.ASP后,菜单显示的是默认的、从数据库中读取的值(代码怎么改?)。紧接着,点“提交”,让这两个默认的值重新写回数据库?这是我的关联SELECT:文件名:aa.asp<body><form id="form1" name="form1" method="post" enctype="multipart/form-data" action=""> <script language="JavaScript" type="text/javascript">//ChangeSelect(上一级的值,下一级Select控件的ID值,下一级Select控件要选中的值(即value而非text),数据源数组名,默认显示字符(如:请选择...如果不写的话会用默认值填充)),第一级的上级值为0function ChangeSelect(ParentValue, NextId, NextSelectedValue, ArrObj, DefaultStr) { StrObj = eval(document.getElementById(NextId)); StrObj.length = 0; //判断它是二级数据源,还是三级 if (ArrObj.length > 0) { if (ArrObj[0].length == 2) { ArrNum = 0; } else { ArrNum = 2; } } //显示所有列表 for (i = 0; i < ArrObj.length; i++) { if (i == 0) { if (DefaultStr == undefined) DefaultStr = "==请选择=="; StrObj.options[StrObj.length] = new Option(DefaultStr, ""); } if (ArrObj[i][1] == ParentValue) { StrObj.options[StrObj.length] = new Option(ArrObj[i][0], ArrObj[i][ArrNum]); } } //选中列表内某一项 for (i = 0; i < StrObj.length; i++) { if (StrObj.options[i].value == NextSelectedValue) { StrObj.options[i].selected = true; } } //激发下一级的onchange事件以实现多级级联 StrObj.onchange();}//公司二维数组数据源Office = [["CategoryName","ParentCategoryName"],["技术部","0"],["业务部","0"],["小王","技术部"],["小张","技术部"],["小刘","业务部"],["小黄","业务部"]]</script><select id="office1" onchange="ChangeSelect(this.value,'office2','',Office,'---人员---')" style="width:100px"></select><select id="office2" onChange="" style="width:100px"></select><script language="JavaScript" type="text/javascript"> ChangeSelect('0','office1','',Office,'---部门---')</script><br /><script language="JavaScript" type="text/javascript">//获取HTML下拉菜单选定值对应的显示值,即value对应的textfunction getSelectText(selectId){ if(null==selectId || selectId.length==0){ alert('select下拉菜单的id不应为空,请返回检查!'); return ''; } var objSel = document.getElementById(selectId); if(null == objSel){ alert('id为' + selectId +'的下拉菜单不存在,请返回检查!'); return ''; } var selectVal = objSel.value; //获取下拉菜单的当前选定值 var ops = objSel.options; if(null==ops || ops.length==0){ return ''; } for(var i=0; i<ops.length; i++){ if(selectVal == ops[i].value){ return ops[i].text; //返回当前选定值对应的显示值 } } return '';}</script><input type="submit" name="Submit" value="提交" /></form></body> 这是我前两天刚写的一个jquery插件,今天就用上了原文在这http://hi.baidu.com/see7di/blog/item/afce5cc2ec7a9522e5dd3ba9.html你去看看吧 //================================= //操作Select內的項目(操作類型,對象id,值) $.sel = function(Typ,Id,Val){ switch (Typ.toLowerCase()){ case "len": //得到select项的元素个数[Typ,Id]:$.sel('len','id') return $("#"+Id).get(0).options.length; break; case "index": //获得选中项的索引[Typ,Id]:$.sel('index','id') return $("#"+Id).get(0).selectedIndex; break; case "val": //取得當前value值[Typ,Id]:$.sel('val','id') return $("#"+Id).val(); break; case "isval": //判斷是否存在某value值[Typ,Id,Val]:$.sel('isval','id','value') var len = $("#"+Id).get(0).options.length; for(var i=0;i<len;i++){if($("#"+Id).get(0).options[i].value == Val){return true;break;}} return false;break; case "indexval": //取得索引值上的value值[Typ,Id,Val]:$.sel('isval','id','value') return $("#"+Id+" option:eq("+Val+")").val(); break; case "allval": //取得所有的value值[Typ,Id,Val]:$.sel('allval','id','|') var len = $("#"+Id).get(0).options.length;_val=''; for(var i=0;i<len;i++){_val+=Val+$("#"+Id).get(0).options[i].value;} _val=_val+Val+'';return _val; break; case "txt": //取得當前text值[Typ,Id]:$.sel('txt','id') return $("#"+Id).get(0).options[$("#"+Id).get(0).selectedIndex].text; break; case "istxt": //判斷是否存在某text值[Typ,Id,Val]:$.sel('isval','id','value') var len = $("#"+Id).get(0).options.length; for(var i=0;i<len;i++){if($("#"+Id).get(0).options[i].text == Val){return true;break;}} return false;break; case "alltxt": //取得所有的value值[Typ,Id,Val]:$.sel('alltxt','id','|') var len = $("#"+Id).get(0).options.length;_val=''; for(var i=0;i<len;i++){_val+=Val+$("#"+Id).get(0).options[i].text;} _val=_val+Val+'';return _val; break; case "add": //添加项目[Typ,Id,Val]:$.sel('add','id','<option value=33>请选择</option>') $("#"+Id).prepend(Val); break; case "insert": //在指定位置插入项目[Typ,Id,Val]:$.sel('insert','id','<option value=33>请选择</option>') $("#"+Id+" option:selected").before(Val);$("#"+Id).get(0).selectedIndex = ($("#"+Id).get(0).selectedIndex-1); break; case "del_ins": //將id前半段的內容移動到id後半段的選中位置之前(被操作項目必須有默認選擇項)[Typ,Id]:$.sel('del_ins','id1|id2') var Arr=new Array();Arr=Id.split("|"); if(!$("#"+Arr[0]+" option:selected").val() || !$("#"+Arr[0]+" option:selected").text()){return;} Val="<option value='"+$("#"+Arr[0]+" option:selected").val()+"'>"+$("#"+Arr[0]+" option:selected").text()+"</option>"; oi=$("#"+Arr[0]).get(0).selectedIndex; $("#"+Arr[0]+" option:selected").remove(); $("#"+Arr[0]).get(0).selectedIndex = (oi-1<0)?0:(oi-1); if($("#"+Arr[1]+"").get(0).options.length<1 || $("#"+Arr[1]).get(0).selectedIndex<0){ $("#"+Arr[1]+"").prepend(Val); $("#"+Arr[1]).get(0).selectedIndex = 0; }else{ $("#"+Arr[1]+" option:selected").before(Val); $("#"+Arr[1]).get(0).selectedIndex = ($("#"+Arr[1]).get(0).selectedIndex-1); } break; case "selindex": //預設某項為選中(參照索引值)[Typ,Id,Val]:$.sel('selindex','id','index') $("#"+Id).get(0).selectedIndex = Val; break; case "selval": //預設某項為選中(參照Value的值)[Typ,Id,Val]:$.sel('selval','id','value') $("#"+Id).get(0).value=Val; break; case "seltxt": //預設某項為選中(參照Text的值)[Typ,Id,Val]:$.sel('seltxt','id','text') var len = $("#"+Id).get(0).options.length; for(var i=0;i<len;i++){if($("#"+Id).get(0).options[i].text == Val){$("#"+Id).get(0).options[i].selected = true;break;}} break; case "selall": //選擇全部[Typ,Id]:$.sel('selall','id') var len = $("#"+Id).get(0).options.length; for(var i=0;i<len;i++){$("#"+Id).get(0).options[i].selected = true;} break; case "delindex": //刪除單個(參照索引值)[Typ,Id,Val]:$.sel('delindex','id','index') $("#"+Id).get(0).remove(Val); break; case "delval": //刪除單個(參照Value的值)[Typ,Id,Val]:$.sel('delval','id','value') $("#"+Id+" option[value='"+Val+"']").remove(); break; case "deltxt": //刪除單個(參照Text的值)[Typ,Id,Val]:$.sel('deltxt','id','text') var len = $("#"+Id).get(0).options.length; for(var i=0;i<len;i++){if($("#"+Id).get(0).options[i].text == Val){$("#"+Id).get(0).remove(i);break;}} break; case "delselected": //刪除單個(被選中的對象)[Typ,Id]:$.sel('delselected','id') $("#"+Id+" option:selected").remove(); break; case "delall": //刪除全部 $("#"+Id).get(0).options.length = 0 ; break; } } Jquery dialog( 'destroy' ) 后还有缓存?! 请问如何用jquery暂时禁用链接然后再次激活? 动态增加行如何根据下拉框的值查询对应的值? 求一正则表达式:包含最少一个字符 e的最小长度是10的正则表达式? 那位给写一个~ 网页内容显示不全,请各位帮忙分析一下原因好吗,很急,万分感谢! 求一个能用的,验证IP是否合法的js函数 设置iframe的高度兼容问题 求助ExtJS——Tree最简单的例子 求救,怎样用js判断同时按下了 shift+enter ,谢谢! 请提供html的格式及注解 关于网页对话框求助 flash与js通信问题
document.forms[0].省.value = "你数据库里传来的值(省)";
// 这个省的值变化应该就改变了市的值咯, 执行一下, 然后
document.forms[0].市.value = "你数据库里传来的值(市)";
问题:当打开AA.ASP后,菜单显示的是默认的、从数据库中读取的值(代码怎么改?)。紧接着,点“提交”,让这两个默认的值重新写回数据库?这是我的关联SELECT:文件名:aa.asp
<body>
<form id="form1" name="form1" method="post" enctype="multipart/form-data" action=""> <script language="JavaScript" type="text/javascript">
//ChangeSelect(上一级的值,下一级Select控件的ID值,下一级Select控件要选中的值(即value而非text),数据源数组名,默认显示字符(如:请选择...如果不写的话会用默认值填充)),第一级的上级值为0
function ChangeSelect(ParentValue, NextId, NextSelectedValue, ArrObj, DefaultStr) {
StrObj = eval(document.getElementById(NextId));
StrObj.length = 0;
//判断它是二级数据源,还是三级
if (ArrObj.length > 0) {
if (ArrObj[0].length == 2)
{ ArrNum = 0; }
else
{ ArrNum = 2; }
}
//显示所有列表
for (i = 0; i < ArrObj.length; i++) {
if (i == 0) {
if (DefaultStr == undefined) DefaultStr = "==请选择==";
StrObj.options[StrObj.length] = new Option(DefaultStr, "");
}
if (ArrObj[i][1] == ParentValue) {
StrObj.options[StrObj.length] = new Option(ArrObj[i][0], ArrObj[i][ArrNum]);
}
}
//选中列表内某一项
for (i = 0; i < StrObj.length; i++) {
if (StrObj.options[i].value == NextSelectedValue) {
StrObj.options[i].selected = true;
}
}
//激发下一级的onchange事件以实现多级级联
StrObj.onchange();
}
//公司二维数组数据源
Office = [
["CategoryName","ParentCategoryName"],
["技术部","0"],
["业务部","0"],
["小王","技术部"],
["小张","技术部"],["小刘","业务部"],
["小黄","业务部"]
]
</script>
<select id="office1" onchange="ChangeSelect(this.value,'office2','',Office,'---人员---')" style="width:100px"></select>
<select id="office2" onChange="" style="width:100px"></select>
<script language="JavaScript" type="text/javascript">
ChangeSelect('0','office1','',Office,'---部门---')
</script>
<br />
<script language="JavaScript" type="text/javascript">//获取HTML下拉菜单选定值对应的显示值,即value对应的text
function getSelectText(selectId){ if(null==selectId || selectId.length==0){
alert('select下拉菜单的id不应为空,请返回检查!');
return '';
} var objSel = document.getElementById(selectId); if(null == objSel){
alert('id为' + selectId +'的下拉菜单不存在,请返回检查!');
return '';
} var selectVal = objSel.value; //获取下拉菜单的当前选定值
var ops = objSel.options; if(null==ops || ops.length==0){
return '';
} for(var i=0; i<ops.length; i++){
if(selectVal == ops[i].value){
return ops[i].text; //返回当前选定值对应的显示值
}
} return '';
}</script>
<input type="submit" name="Submit" value="提交" />
</form>
</body>
原文在这http://hi.baidu.com/see7di/blog/item/afce5cc2ec7a9522e5dd3ba9.html
你去看看吧 //=================================
//操作Select內的項目(操作類型,對象id,值)
$.sel = function(Typ,Id,Val){
switch (Typ.toLowerCase()){
case "len": //得到select项的元素个数[Typ,Id]:$.sel('len','id')
return $("#"+Id).get(0).options.length;
break;
case "index": //获得选中项的索引[Typ,Id]:$.sel('index','id')
return $("#"+Id).get(0).selectedIndex;
break;
case "val": //取得當前value值[Typ,Id]:$.sel('val','id')
return $("#"+Id).val();
break;
case "isval": //判斷是否存在某value值[Typ,Id,Val]:$.sel('isval','id','value')
var len = $("#"+Id).get(0).options.length;
for(var i=0;i<len;i++){if($("#"+Id).get(0).options[i].value == Val){return true;break;}}
return false;break;
case "indexval": //取得索引值上的value值[Typ,Id,Val]:$.sel('isval','id','value')
return $("#"+Id+" option:eq("+Val+")").val();
break;
case "allval": //取得所有的value值[Typ,Id,Val]:$.sel('allval','id','|')
var len = $("#"+Id).get(0).options.length;_val='';
for(var i=0;i<len;i++){_val+=Val+$("#"+Id).get(0).options[i].value;}
_val=_val+Val+'';return _val;
break;
case "txt": //取得當前text值[Typ,Id]:$.sel('txt','id')
return $("#"+Id).get(0).options[$("#"+Id).get(0).selectedIndex].text;
break;
case "istxt": //判斷是否存在某text值[Typ,Id,Val]:$.sel('isval','id','value')
var len = $("#"+Id).get(0).options.length;
for(var i=0;i<len;i++){if($("#"+Id).get(0).options[i].text == Val){return true;break;}}
return false;break;
case "alltxt": //取得所有的value值[Typ,Id,Val]:$.sel('alltxt','id','|')
var len = $("#"+Id).get(0).options.length;_val='';
for(var i=0;i<len;i++){_val+=Val+$("#"+Id).get(0).options[i].text;}
_val=_val+Val+'';return _val;
break;
case "add": //添加项目[Typ,Id,Val]:$.sel('add','id','<option value=33>请选择</option>')
$("#"+Id).prepend(Val);
break;
case "insert": //在指定位置插入项目[Typ,Id,Val]:$.sel('insert','id','<option value=33>请选择</option>')
$("#"+Id+" option:selected").before(Val);$("#"+Id).get(0).selectedIndex = ($("#"+Id).get(0).selectedIndex-1);
break;
case "del_ins": //將id前半段的內容移動到id後半段的選中位置之前(被操作項目必須有默認選擇項)[Typ,Id]:$.sel('del_ins','id1|id2')
var Arr=new Array();Arr=Id.split("|");
if(!$("#"+Arr[0]+" option:selected").val() || !$("#"+Arr[0]+" option:selected").text()){return;}
Val="<option value='"+$("#"+Arr[0]+" option:selected").val()+"'>"+$("#"+Arr[0]+" option:selected").text()+"</option>";
oi=$("#"+Arr[0]).get(0).selectedIndex;
$("#"+Arr[0]+" option:selected").remove();
$("#"+Arr[0]).get(0).selectedIndex = (oi-1<0)?0:(oi-1);
if($("#"+Arr[1]+"").get(0).options.length<1 || $("#"+Arr[1]).get(0).selectedIndex<0){
$("#"+Arr[1]+"").prepend(Val);
$("#"+Arr[1]).get(0).selectedIndex = 0;
}else{
$("#"+Arr[1]+" option:selected").before(Val);
$("#"+Arr[1]).get(0).selectedIndex = ($("#"+Arr[1]).get(0).selectedIndex-1);
}
break;
case "selindex": //預設某項為選中(參照索引值)[Typ,Id,Val]:$.sel('selindex','id','index')
$("#"+Id).get(0).selectedIndex = Val;
break;
case "selval": //預設某項為選中(參照Value的值)[Typ,Id,Val]:$.sel('selval','id','value')
$("#"+Id).get(0).value=Val;
break;
case "seltxt": //預設某項為選中(參照Text的值)[Typ,Id,Val]:$.sel('seltxt','id','text')
var len = $("#"+Id).get(0).options.length;
for(var i=0;i<len;i++){if($("#"+Id).get(0).options[i].text == Val){$("#"+Id).get(0).options[i].selected = true;break;}}
break;
case "selall": //選擇全部[Typ,Id]:$.sel('selall','id')
var len = $("#"+Id).get(0).options.length;
for(var i=0;i<len;i++){$("#"+Id).get(0).options[i].selected = true;}
break;
case "delindex": //刪除單個(參照索引值)[Typ,Id,Val]:$.sel('delindex','id','index')
$("#"+Id).get(0).remove(Val);
break;
case "delval": //刪除單個(參照Value的值)[Typ,Id,Val]:$.sel('delval','id','value')
$("#"+Id+" option[value='"+Val+"']").remove();
break;
case "deltxt": //刪除單個(參照Text的值)[Typ,Id,Val]:$.sel('deltxt','id','text')
var len = $("#"+Id).get(0).options.length;
for(var i=0;i<len;i++){if($("#"+Id).get(0).options[i].text == Val){$("#"+Id).get(0).remove(i);break;}}
break;
case "delselected": //刪除單個(被選中的對象)[Typ,Id]:$.sel('delselected','id')
$("#"+Id+" option:selected").remove();
break;
case "delall": //刪除全部
$("#"+Id).get(0).options.length = 0 ;
break;
}
}