绕过部分IE9下无法取到select下拉选项value值的问题

最近做的项目使用UpdatePanel做异步表单回传,在部分机器的ie9下发现UpdatePanel中只要含有下拉框控件,异步回传时就会报脚本错,回传也失败了。 

查了半天发现是这些机器的ie9取不到下拉框选项的value值(value为undefined,应该是ie9下某个模块的bug,同样版本的ie9,某台机器会出问题,在其他机器上则没有问题),但可以通过选项的attributes['value'].nodeValue取到值,最后使用jquery在页面初始化时对所有select进行处理,为其每个option设置value值。

相关脚本:

var fixie9 = $.browser.msie9 && this.options.length > 0 && typeof this.options[0].value == 'undefined';

for (var i = 0; i < this.options.length; i++) {
  if (fixie9) {
    this.options[i].value = this.options[i].attributes['value'] ? this.options[i].attributes['value'].nodeValue : '';

  }

posted @ 2011-05-20 22:28  junz  阅读(1254)  评论(0编辑  收藏  举报