使用Javascript onkeyup()更改IE8中的不透明度(再次)

使用Javascript onkeyup()更改IE8中的不透明度(再次),javascript,internet-explorer-8,filter,opacity,alpha,Javascript,Internet Explorer 8,Filter,Opacity,Alpha,我为发布另一个IE不透明问题提前表示歉意,但我已经阅读了至少30个不同的页面(很多都是如此),无法让它工作 我试图根据用户在cardnumber字段中键入的第一个字符,动态更改美国4种主要信用卡类型(Visa、MC、美国运通、Discover)的不透明度 我的代码在IE9、Firefox、Safari和Chrome中运行良好,但当然不是IE8,IE8是Windows XP支持所必需的 我已尝试使用以下设置: object.style.filter = 'alpha(opacity=13)'; o

我为发布另一个IE不透明问题提前表示歉意,但我已经阅读了至少30个不同的页面(很多都是如此),无法让它工作

我试图根据用户在cardnumber
字段中键入的第一个字符,动态更改美国4种主要信用卡类型(Visa、MC、美国运通、Discover)的不透明度

我的代码在IE9、Firefox、Safari和Chrome中运行良好,但当然不是IE8,IE8是Windows XP支持所必需的

我已尝试使用以下设置:

object.style.filter = 'alpha(opacity=13)';
object.filter = 'alpha(opacity=13)';
object.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(Opacity=13)';
我甚至尝试在不透明度中大写O,不希望它有帮助

有人知道我错过了什么吗

JQuery解决方案很好,但出于学术原因,我想知道是否可以在Javascript中实现

我有以下HTML:

<span>
  <input name='cardnumber' value="3717XXXXXXX8775" type='text' id='cardnumber' onkeyup='setCardType();'>
</span>
<span>
  <img src='/style/icon_visa.gif' id='visa' alt='This is a Visa' style='opacity:.13;filter:alpha(opacity=13);'>&nbsp;&nbsp;
  <img src='/style/icon_mastercard.gif' id='mastercard' alt='This is a MasterCard' style='opacity:.13;filter:alpha(opacity=13);'>&nbsp;&nbsp;
  <img src='/style/icon_amex.gif' id='amex' alt='This is an American Express' style='opacity:1;filter:alpha(opacity=100);'>&nbsp;&nbsp;
  <img src='/style/icon_discover.gif' id='discover' alt='This is a Discover Card' style='opacity:.13;filter:alpha(opacity=13);'>
</span>
<input type='hidden' name='cardtype' id='cardtype' value="American Express">
}

编辑:以下是jQuery解决方案,它大大缩短了代码:

function setCardType() {
var cardnumber = document.getElementById('cardnumber').value;
cardnumber = cardnumber.replace(/[^0-9]/g,'');
document.getElementById('cardnumber').value = cardnumber;

var firstchar = cardnumber.charAt(0);
if (firstchar == 3) {
    $('#visa').css('opacity', .13);
    $('#mastercard').css('opacity', .13);
    $('#amex').css('opacity', 1);
    $('#discover').css('opacity', .13);
    document.getElementById('confirmCardType').innerHTML = 'American Express';
}
else if (firstchar == 4) {
    $('#visa').css('opacity', 1);
    $('#mastercard').css('opacity', .13);
    $('#amex').css('opacity', .13);
    $('#discover').css('opacity', .13);
    document.getElementById('confirmCardType').innerHTML = 'Visa';
}
else if (firstchar == 5) {
    $('#visa').css('opacity', .13);
    $('#mastercard').css('opacity', 1);
    $('#amex').css('opacity', .13);
    $('#discover').css('opacity', .13);
    document.getElementById('confirmCardType').innerHTML = 'MasterCard';
}
else if (firstchar == 6) {
    $('#visa').css('opacity', .13);
    $('#mastercard').css('opacity', .13);
    $('#amex').css('opacity', .13);
    $('#discover').css('opacity', 1);
    document.getElementById('confirmCardType').innerHTML = 'Discover';
}
else {
    $('#visa').css('opacity', .13);
    $('#mastercard').css('opacity', .13);
    $('#amex').css('opacity', .13);
    $('#discover').css('opacity', .13);
    document.getElementById('confirmCardType').innerHTML = '';
}
return true;
}


jQuery会自动为您处理交叉兼容性问题。太棒了…

在阅读您的答案之前,我正要评论“IE8不支持不透明”+1.呵呵,我之所以知道这一点,是因为我面临着同样的问题,jQuery也帮我解围了!这非常有效,并且大大缩短了代码。谢谢你的解决方案。我仍然想知道是否有人有一个纯Javascript的解决方案来解决这个问题。。。
function setCardType() {
var cardnumber = document.getElementById('cardnumber').value;
cardnumber = cardnumber.replace(/[^0-9]/g,'');
document.getElementById('cardnumber').value = cardnumber;

var firstchar = cardnumber.charAt(0);
if (firstchar == 3) {
    $('#visa').css('opacity', .13);
    $('#mastercard').css('opacity', .13);
    $('#amex').css('opacity', 1);
    $('#discover').css('opacity', .13);
    document.getElementById('confirmCardType').innerHTML = 'American Express';
}
else if (firstchar == 4) {
    $('#visa').css('opacity', 1);
    $('#mastercard').css('opacity', .13);
    $('#amex').css('opacity', .13);
    $('#discover').css('opacity', .13);
    document.getElementById('confirmCardType').innerHTML = 'Visa';
}
else if (firstchar == 5) {
    $('#visa').css('opacity', .13);
    $('#mastercard').css('opacity', 1);
    $('#amex').css('opacity', .13);
    $('#discover').css('opacity', .13);
    document.getElementById('confirmCardType').innerHTML = 'MasterCard';
}
else if (firstchar == 6) {
    $('#visa').css('opacity', .13);
    $('#mastercard').css('opacity', .13);
    $('#amex').css('opacity', .13);
    $('#discover').css('opacity', 1);
    document.getElementById('confirmCardType').innerHTML = 'Discover';
}
else {
    $('#visa').css('opacity', .13);
    $('#mastercard').css('opacity', .13);
    $('#amex').css('opacity', .13);
    $('#discover').css('opacity', .13);
    document.getElementById('confirmCardType').innerHTML = '';
}
return true;
$("#visa").css("opacity", .13);