绕过部分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 : '';
}
}