我们一般使用jquery获取select时,一般这么用:
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、重庆小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了浦北免费建站欢迎大家使用!
select
id='a'
option
selected='selected'
value='1'
/select
var
selectedValue
=
$("#a").val();
在非IE8下,selectedValue的值为“1”,typeof
selectedValue
为“string”。
在IE8下,selectedValue的值为[“1”],typeof
selectedValue
为
“objectg”。
如果直接将selectedValue
post发送到后台,后台接收时会报错,因为在传输过程中,IE8下selectedValue当成了数组,后台无法识别。
解决的代码如下:
selectedValue
=
typeof
selectedValue
==
"object"
?
selectedValue[0]
:
selectedValue;
这样selectedValue为字符串了。
另外这样会引发其他的问题:
var
a
=
selectedValue.trim();
这段代码在IE8下无法执行,可能的原因也是由于上述所致。
使用如下代码就确保可以运行:
$.trim(selectedValue);
2.0以上版本的jQuery已经不再支持IE8及以下版本的IE浏览器,所以才出现了问题。
解决方法很简单:
!--IE8只能支持jQuery1.9--!--[if lte IE 8]script src=""/script![endif]--
相关问题:
Jquery从2.x版本开始已经不再进行IE低版本(IE6、IE7、IE8)的兼容性处理。如果需要兼容低版本的IE版本,建议使用原生JS或者低版本的Jquery1.x版本。
一般的处理方式是给网页写两套或者多套JS代码以适应不同版本、不同类型的浏览器,然后使用原生JS判断浏览器的型号和版本来加载不同的JS文件,具体的实现方法如下:
script language="javascript"
//判断是否为IE浏览器
if(navigator.appName == "Microsoft Internet Explorer")
{
if(navigator.appVersion.match(/7./i) == '6.' ||
navigator.appVersion.match(/7./i) == '7.' ||
navigator.appVersion.match(/7./i) == '8.')
{
document.write("script src=\"myjs1.js\""+"/script");
}else{
document.write("script src=\"myjs2.js.js\""+"/script");
}
}
/script
如果只是判断IE版本,没必要动用JQUERY来做,直接可以判断了,,下面是各版本的代码
!--[if IE]
h1您正在使用IE浏览器/h1
!--[if IE 6]
h2版本 6/h2
![endif]--
!--[if IE 7]
h2版本 7/h2
![endif]--
!--[if gte IE 8]
h2版本 8及以上/h2
![endif]--
![endif]--
如果一定要用JQUERY来判断的话,可以用jquery.browser来做。下面是简单粟子。
script type="text/javascript" src=""/script
script type="text/javascript"
$(function() {
var userAgent = window.navigator.userAgent.toLowerCase();
$.browser.msie10 = $.browser.msie /msie 10\.0/i.test(userAgent);
$.browser.msie9 = $.browser.msie /msie 9\.0/i.test(userAgent);
$.browser.msie8 = $.browser.msie /msie 8\.0/i.test(userAgent);
$.browser.msie7 = $.browser.msie /msie 7\.0/i.test(userAgent);
$.browser.msie6 = !$.browser.msie8 !$.browser.msie7 $.browser.msie /msie 6\.0/i.test(userAgent);
$(".info").html(
"h3userAgent:/h3" + userAgent + "br /" +
"h3Is IE 10?/h3" + $.browser.msie10 +
"h3Is IE 9?/h3" + $.browser.msie9 +
"h3Is IE 8?/h3" + $.browser.msie8 +
"h3Is IE 7?/h3" + $.browser.msie7 +
"h3Is IE 6?/h3" + $.browser.msie6
);
});
/script
body
div class="info"/div
/body
jQuery下使用removeAttr时,在IE8以下版本中会出现属性移除不了的问题,现象是移除以后,仍然显示为disabled的状态,但文本框可录入,按钮可点击,严重的是,数据提交不了。
修正的方法是使用prop方法,如
$('#needDisabledElem').prop("disabled", true);
$('#removeDisabledStatus').prop("disabled", false);
详细参见:。
JQuery 1.11.3,支持IE6+、firefox、chrome等浏览器。
这个版本也是较新的版本。
可以到nuget上搜索jquery,下载后把文件扩展名改成zip即可打开,里面的js文件就是。