【问题标题】:change opacity of div based on value of input根据输入值更改 div 的不透明度
【发布时间】:2014-03-01 03:55:22
【问题描述】:

我有一个信用卡输入和一组图标(万事达卡、签证、发现、美国运通)。

当我在信用卡输入中输入有效的主卡号时,我希望主卡图标的不透明度为 1。其余图标和有效的信用卡号也是如此。

html:

<div class="payment-cc-type">
  <div class="payment-cc-icon">
  <div id="american_express" class="cc-opacity"></div>
  <div id="visa" class="cc-opacity"></div>
  <div id="master_card" class="cc-opacity"></div>
  <div id="discover" class="cc-opacity"></div>
  </div>
  <%= f.text_field :cc_type %>
</div>
<div class="payment-cc-number">
  <%= f.label :cc_number, 'Number' %>
  <%= f.text_field :cc_number %>
</div>

js:

$(document).ready(function(){
$("#payment_cc_number").change(function(){
    $('.cc-opacity').val(getCreditCardType($(this).val())).css('opacity', 1);

});
});

function getCreditCardType(accountNumber)
{

//start without knowing the credit card type
var result = "unknown";

//first check for MasterCard
if (/^5[1-5]/.test(accountNumber))
{
    result = "MasterCard";
}

//then check for Visa
else if (/^4/.test(accountNumber))
{
    result = "Visa";
}

//then check for AmEx
else if (/^3[47]/.test(accountNumber))
{
    result = "American Express";
}
//then check for Discover
else if (/^6011/.test(accountNumber))
{
    result = "Discover";
}

return result;
}

使用此代码,所有图标的不透明度都变为 1,而不是特定的。

【问题讨论】:

    标签: javascript jquery ruby


    【解决方案1】:

    试试这个

    $("#payment_cc_number").change(function(){
        //Get Card
        var card = getCreditCardType($(this).val());
        $('.cc-opacity').val(card);
    
        //As you have defined ids as visa etc
        card = card.toLowerCase().replace(/\s/g, '_')
        $('#'+card).css('opacity', 1);
    });
    

    【讨论】:

    • @anmaree,我已经更新了答案。 '#'+card 是你 div 的选择器
    • 它似乎仍然无法正常工作,# 是否应该被替换为 div id 的名称?我正在使用类
    • @anmaree,你已经定义了 ids 并且 # 是 id 选择器。你能张贴卡的价值吗?只是提醒你得到什么
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-02
    • 2012-08-06
    • 2012-09-07
    • 2016-12-02
    • 1970-01-01
    • 2013-03-04
    • 2023-03-23
    相关资源
    最近更新 更多