日期:2014-05-18  浏览次数:20793 次

Javascript 改变DropDownList的选中状态后,后台不能获取新的选中值
如题,
var str = ShowPreAuthority();
  var obj = document.all.SelectPreEmrl;
  for (var i=0;i<obj.options.length;i++)
  {
  if (obj.options[i].value == str)
  {  
  obj.options[0].selected = false;
  obj.options[i].selected = true;
  obj.selectedIndex = i;
  obj.options[i].value = str;
  break;
  }
  }
执行完毕后了,我点击按钮触发保存事件时,开始获取dropdownlist新值,获取不到,获取的还是JS未改变状态前的选中值...
(dropdownlist的autopostback设置与否结果都是一样的)
这是为什么?
后台获取是 this.DropDownList.SelectedValue

------解决方案--------------------
在脚本里对控件的改动并不会自动把改动提交到服务器,所以服务器上的状态是不会改变的。
------解决方案--------------------
加一Hidden,从Hidden里取值.
------解决方案--------------------
或者可以把按钮弄成前台按钮runat=server去掉,后台按钮一定会刷新的

加一Hidden,从Hidden里取值,这个方法很不错呀,惯用手段,不用可以用ajax使前台代码可以调用后台函数,事件.