Can't get this javascript (Luhn Algorithm) to work in this perl CGI file

54 views Asked by At

I have a shopping cart that doesn't validate cards and I'm getting a lot of declined orders because people don't catch their typos. Trying to add Luhn validation to it.

I found this script which works fine by itself. It on-the-fly changes invalid to valid when a "good" credit card number is typed in.

<input id="cc" type="text" name="creditcard" size="20"><p id="status">invalid</p>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<script>
 
    $('#cc').on('input', function(){
    if (checkLuhn($('#cc').val())) {
    $('#status').html('valid');
    } else {
    $('#status').html('invalid');
    }
    });

    function checkLuhn(value) {
    // remove all non digit characters
    var value = value.replace(/\D/g, '');
    var sum = 0;
    var shouldDouble = false;
    // loop through values starting at the rightmost side
    for (var i = value.length - 1; i >= 0; i--) {
    var digit = parseInt(value.charAt(i));
 
    if (shouldDouble) {
    if ((digit *= 2) > 9) digit -= 9;
    }

    sum += digit;
    shouldDouble = !shouldDouble;
    }
    return (sum % 10) == 0;
    }  
    
</script>

I'm trying to insert it into the HTML portion of the CGI file, below this relevant line and giving the INPUT the id="cc" tag, but the script won't run.

<INPUT TYPE="text" id="cc" NAME="Payment_Card_Number" MAXLENGTH="20" size="20" value="$form_data{'Payment_Card_Number'}">
0

There are 0 answers