使用jquery/javascript时出现奇怪的IE问题
我正在使用以下代码:使用jquery/javascript时出现奇怪的IE问题,javascript,jquery,Javascript,Jquery,我正在使用以下代码: ieLessThan8OptionDisable = function() { if ($.browser.msie && parseFloat($.browser.version) < 8) { $("select").find("[disabled]").addClass("disabledforie").removeAttr("disabled"); $("select").change(function(){ v
ieLessThan8OptionDisable = function() {
if ($.browser.msie && parseFloat($.browser.version) < 8) {
$("select").find("[disabled]").addClass("disabledforie").removeAttr("disabled");
$("select").change(function(){
var selected = $(this).val();
var disabled = $(this).find("[value="+selected+"]").hasClass("disabledforie");
if (disabled) {
alert("This option is disabled.\nSelect will be set to the first option.");
$(this).find("option:first").attr("selected","selected");
}
});
}
}
ieLessThan8OptionDisable=函数(){
if($.browser.msie&&parseFloat($.browser.version)<8){
$(“选择”).find(“[disabled]”)。addClass(“disabledforie”).removeAttr(“disabled”);
$(“选择”).change(函数(){
所选变量=$(this.val();
var disabled=$(this.find(“[value=“+selected+”]”)hasClass(“disabledforie”);
如果(禁用){
警报(“此选项已禁用。\n选择将设置为第一个选项。”);
$(this.find(“option:first”).attr(“selected”、“selected”);
}
});
}
}
基本上,此代码用于选择下拉框中的禁用选项。除了可用性问题之外,它工作得非常好
每当我点击IE中应该禁用的选项时,就会弹出一个警报,然后选择框会重置到第一个位置。一切都很好。现在,当我点击选择框打开下拉列表时,它就关闭了。基本上,我必须点击它2次,然后它才会打开
我在IE6和IE7中尝试过这个。两者都有这个问题
任何指针都会很棒
谢谢这听起来像是一个焦点问题。当您选择一个新选项时,选择框具有焦点,然后您会弹出一个警报,该警报会将焦点从选择元素中偷走。IE应该在调用警报时自动关闭选择框,但遗憾的是,他们可能没有测试此边缘情况。因此,两次单击可执行以下操作:
if (disabled) {
this.blur();// add in
alert("This option is disabled.\nSelect will be set to the first option.");
$(this).find("option:first").attr("selected","selected");
}
PS-我还没有实际测试过这个,我现在没有可用的IE