代码如下:
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)//==========测试代码===============
head runat="server"
title下拉框测试/title
script type="text/javascript" src="/js/jquery/jquery-1.3.js"/script
script type="text/javascript"
$(function(){
var $city= $("#ddlCity");
//填充一些数据
for(var i=1;i=10;i++){
$city.append($("option/").attr("value",i).text("可以选择的城市第:" +i));
}
//$city.width("100px");//IE6.0下需要自己调整下拉框的宽度
var t=6;
//setTimeout("$("#ddlCity").val("+ t +");",1); //IE6下解决一,IE,火狐取值多有问题
try{$city.val(6);}catch(e){} //IE6下解决二,select至少有一个静态option,IE取值有问题
//$city.val(6);//ie6报错,fireFox,IE8.0正常
alert($city.val());
$("#ddlProvince").val(101);//全部正常
});
/script
/head
body
form runat="server"
select name="ddlProvince"
option value="0"请选择/option
option value="1"北京/option
option value="60"重庆/option
option value="101"广东/option
/select
select name="ddlCity"
option value="0"请选择/option
/select
!-- option value="0"请选择/option 将ddlCity中的全部option清除--
asp:Button runat="server" onclick="butSave_Click" Text="Button" /
/form
/body
//==========End 测试代码===================
测试说明:
A:静态select项目
静态select项目(可以通过服务器端脚本填充),可以直接使用$("#下拉框id").val(选中的value)进行设置.
设置后使用$("#下拉框id").val();可以正确获取其值.
B:有一项静态的
包含动态创建立的option时,使用$("#selectId").val()
动态创建的(包含一项静态的option如: option value="0"请选择/option),可以通过
1.setTimeout("$("#下拉框id").val("+value+")",1)设置.
但是使用setTimeout后,使用$("#下拉框id").val();取值时则不正确,当然通常情况你的代码上下文保留有value值,
没必要通过.val()去取,setTimeout缺点是异步执行的,setTimeout执行时的上下文通常不是当前函数域.
2.使用try{$("#下拉框id").val();}catch(e){}来屏蔽错误,
这个在firefox中跟IE6.0中多可以正常运行,但是IE6.0取值会出问题.
C:全部动态创建
这种情况下使用try在IE6.0中也无发设置.
另外IE6.0对动态创建的下拉项目,不能自动调整select宽度,需要手动调整.