文本框的内容改变时另一个下拉列表框随着改变
下面的例子是输入出生日期,然后星座下拉框相应变动:
<intpu type="text" id="aa" value="1982-08-24" οnchange="birthChange(this)/>
<script type="text/javascript">
function birthChange(obj){
if(obj!=null){
var da = obj.value.split("-");
if(da.length==3){
var index = getConstellationIndex(da[1],da[2]);
document.getElementById("ctl00_cphBody_ddlConstellation").selectedIndex = index;
}
}
}
function getConstellationIndex(month, day){
var year = "2009";
var result = -1;
var d = new Date(year,month,day);
var min = new Date(year,"1","20");
var max = new Date(year,"2","18");
if(d>=min && d<=max){
result = 0;
}
min = new Date(year,"2","19");
max = new Date(year,"3","20");
if(d>=min && d<=max){
result = 1;
}
min = new Date(year,"3","21");
max = new Date(year,"4","19");
if(d>=min && d<=max){
result = 2;
}
min = new Date(year,"4","20");
max = new Date(year,"5","20");
if(d>=min && d<=max){
result = 3;
}
min = new Date(year,"5","21");
max = new Date(year,"6","20");
if(d>=min && d<=max){
result = 4;
}
min = new Date(year,"6","21");
max = new Date(year,"7","22");
if(d>=min && d<=max){
result = 5;
}
min = new Date(year,"7","23");
max = new Date(year,"8","22");
if(d>=min && d<=max){
result = 6;
}
min = new Date(year,"8","23");
max = new Date(year,"9","22");
if(d>=min && d<=max){
result = 7;
}
min = new Date(year,"9","23");
max = new Date(year,"10","22");
if(d>=min && d<=max){
result = 8;
}
min = new Date(year,"10","23");
max = new Date(year,"11","21");
if(d>=min && d<=max){
result = 9;
}
min = new Date(year,"11","22");
max = new Date(year,"12","21");
if(d>=min && d<=max){
result = 10;
}
min = new Date(year,"12","22");
max = new Date(year,"1","19");
if((d>=min && d<=new Date(year,"12","31")) || (d>=new Date(year,"1","1") && d<=max)){
result = 11;
}
return result;
}
</script>