【问题标题】:Checking for keyup event in Javascript在 Javascript 中检查 keyup 事件
【发布时间】:2013-04-10 18:50:10
【问题描述】:

我正在尝试使用jQuery Credit Card Validator 来验证信用卡。

基本用法为

$('#cc_number').validateCreditCard(function(result)
{
alert('CC type: ' + result.card_type.name
  + '\nLength validation: ' + result.length_valid
  + '\nLuhn validation: + result.luhn_valid');
});

我查看了该站点上包含的演示 JS 文件,但无法做出头部或尾部。

我想要实现的是输入的onkeyup,根据捕获的卡类型做一些事情:

 //on key up of input
 if (card == valid) 
   {
     if (card == visa)
      {
        //do something
      }
     else if (card == mastercard)
     {
        //do something
     }
       // repeat for rest of card types
   }
 else
   {
     //Just print an error
   }

我知道这是相当基本的东西,但有人可以帮助我如何实现吗?

 my HTML:
 <input type="text" id="cc_number" />

【问题讨论】:

    标签: javascript


    【解决方案1】:

    这里是 jQuery 信用卡验证器的开发者。

    jCCV 绑定了keyup 事件,所以你不需要这样做。 (实际上比这要复杂一点——你只需要知道每次字段的值改变,你的回调函数就会被执行)。

    $('#cc_number').validateCreditCard(function(result)
    {
        // this will execute everytime the value of the `#cc_number` field changes
    
        if (result.length_valid && result.luhn_valid) {
            if (result.card_type.name == 'visa') {
                // do something
            } else if (result.card_type.name == 'mastercard') {
                // do something
            }       
            // repeat for rest of card types
        } else {
            // just print an error
        }
    });
    

    【讨论】:

    • 没问题!如果您需要更多帮助,可以在 Twitter @PawelDecowski 上直接与我联系。很高兴为您提供帮助!
    • Pawel,请帮忙处理这个帖子@@stackoverflow.com/questions/22148771/…
    【解决方案2】:

    试试这样的:

    $("#cc_number").on("keyup", function() {
        $(this).validateCreditCard(function(result) {
        alert('CC type: ' + result.card_type.name
          + '\nLength validation: ' + result.length_valid
          + '\nLuhn validation: ' + result.luhn_valid);
        });
    
        if (result.card_type.name) {
          if (result.card_type.name == visa)
          {
             //do something
          }
          else if (result.card_type.name == mastercard)
          {
             //do something
          }
          // repeat for rest of card types
       }
       else {
         //Just print an error
       }
    });
    

    【讨论】:

    • 其实这是错误的。 jCCV 自动绑定必要的事件,因此只要字段的值发生更改,就会执行回调。在即将发布的版本中它将是可选的。
    【解决方案3】:

    通过 Stripe 使用这个:https://github.com/stripe/jquery.payment

    好多了。

    【讨论】:

    • 这有点矫枉过正,因为它是一个支付库,验证功能只是帮手。不过,我有偏见,因为我是 jQuery Credit Card Validator 开发人员;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多