gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 13:21:24 28 4
gpt4 key购买 nike

对于发布另一个 IE 不透明度问题,我提前表示歉意,但我已经阅读了至少 30 个不同的页面(很多都是关于 SO 的)并且无法使其正常工作。

我正在尝试根据用户输入卡号的第一个字符动态更改美国 4 种主要信用卡类型(Visa、MC、Amex、Discover)的不透明度 <input>字段。

我的代码在 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)';

我什至尝试在 Opacity 中将 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">

和以下 Javascript:

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

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

编辑:这是 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;

最佳答案

$("#visa").css("opacity", .13);

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

关于javascript - 使用 Javascript onkeyup() 更改 IE8 中的不透明度(再次),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10148867/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com