站长论坛

标题: 如何恢复select的默认值 [打印本页]

作者: superadmin    时间: 2007-12-13 19:29
标题: 如何恢复select的默认值
<select name="selRegion" onchange="javascript:if(this.value=='北京'){if(confirm('您确定为北京吗??')) {this.value='北京';return false; }else {this.value='南京';return true;}}">

<option value='上海'>上海</option>
<option value='南京' selected>南京</option>
<option value='北京'>北京</option>
</select>

想要实现:默认值为"南京",当在下拉框中选择“北京”的时候,弹出确认对话框,如果确定则选中“北京”,否则恢复默认,还是将南京选中!

现在的问题是,在弹出确认对话框后,点“取消”了,还是将“北京”选中了!

注意,上面的代码中,我指定了取消后是南京,但请各位不要在JS中指定为南京,而是让它恢复成默认,因为默认选中的值在程序中是动态的!

请教各位!

多谢!
作者: superadmin    时间: 2007-12-13 19:29
<select name="selRegion" id="selRegion"  onchange="changeSelect(this)">
<option value='上海'>上海</option>
<option value='南京' selected="selected">南京</option>
<option value='北京'>北京</option>
</select>
<script type="text/javascript">
var selectDefault = document.getElementById("selRegion").selectedIndex;
function changeSelect(obj){
if(obj.options[obj.selectedIndex].value=="北京"){
  if(!confirm('您确定为北京吗??')){
   obj.options[selectDefault].selected = true;
  }
}
}
</script>

改成这样看下,好像复杂点了
作者: superadmin    时间: 2007-12-13 19:29
依据楼上思路写的一个简写版

<select name="selRegion" onclick="(!typeof(SRD)=='undefined')&&(SRD=this.selectedIndex);" onchange="if(this.value=='北京'){if(!confirm('您确定为北京吗??')){this.options[SRD].selected = true;}}">
<option value='上海'>上海</option>
<option value='南京' selected>南京</option>
<option value='北京'>北京</option>
</select>
但是这样做有一个BUG,以上面的例子为例
你选择上海,然后刷新页面.再次选择北京并取消,他将返回到上海!

由于select不能记录default selected,最好的办法还是动态返回默认选中值给页面
作者: superadmin    时间: 2007-12-13 19:29
感谢大家!正如版主所说的那样,现在用动态返回值解决了!




欢迎光临 站长论坛 (http://tzlink.com/bbs/) Powered by Discuz! X3.2