Algorithm-CouponCode

 view release on metacpan or  search on metacpan

html/jquery.couponcode.js  view on Meta::CPAN

    $( self.inputs ).each(function(i, input) {
        input
        .keydown(function() { setTimeout(function() { validate(i); }, 5 ); } )
        .blur(function() { self.focus = null; validate(i); } )
        .focus( function() { self.focus = i; } );
    });
    self.inputs[0].on('paste', function() {
        setTimeout(function() { set_parts(self.inputs[0].val()); }, 2);
    });

    if(start_val.length > 0) {
        set_parts(start_val);
    }
    wrapper.append(inner);
    if(self.setFocus) {
        self.inputs[0].focus();
    }

    function set_parts(code) {
        var parts = code.split('-');
        for(var i = 0; i < self.parts; i++) {

html/jquery.couponcode.js  view on Meta::CPAN

            self.flags[index] = 0;
        }
        update_hidden_field();
    }

    function validate_one_field(input, index) {
        var val = input.val();
        var focussed = (self.focus === index);
        if(val == '') { return; }
        var code = clean_up( val );
        if(code.length > 4 || BAD_SYMBOL.test(code)) {
            return false;
        }
        if(code.length < 4) {
            return focussed ? null : false;
        }
        if(code.charAt(3) != checkdigit(code, index + 1)) {
            return false;
        }
        if(val != code) {
            input.val(code);
        }
        if(focussed && (index < self.parts - 1)) {
            self.inputs[index + 1].focus();



( run in 0.602 second using v1.01-cache-2.11-cpan-65fba6d93b7 )