Algorithm-CouponCode
view release on metacpan or search on metacpan
html/jquery.couponcode.js view on Meta::CPAN
$.fn.couponCode = function(options) {
return this.each(function() {
$.fn.couponCode.build(this, options);
});
};
$.fn.couponCode.build = function(base_entry, options) {
var self = $.extend({}, $.fn.couponCode.defaults, options);
self.focus = null;
self.inputs = [];
self.flags = [];
self.parts = parseInt(self.parts, 10);
if(isNaN(self.parts) || self.parts < 1 || self.parts > 6) {
alert("CouponCode 'parts' must be in range 1-6");
return;
}
var start_val = $(base_entry).val();
var name = base_entry.name;
var id = base_entry.id;
var wrapper = $( $(base_entry).wrap('<span class="jq-couponcode" />').parent()[0] );
html/jquery.couponcode.js view on Meta::CPAN
validate(i);
}
}
function validate(index) {
var input = self.inputs[index];
var result = validate_one_field(input, index);
if(result === true) {
input.removeClass('jq-couponcode-bad');
input.addClass('jq-couponcode-good');
self.flags[index] = 1;
}
else {
input.removeClass('jq-couponcode-good');
input.removeClass('jq-couponcode-bad');
if(result === false) {
input.addClass('jq-couponcode-bad');
}
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)) {
html/jquery.couponcode.js view on Meta::CPAN
$( self.inputs ).each(function(i, input) {
parts.push(input.val());
});
var new_code = parts.join('-');
if(old_code == new_code) {
return;
}
hidden.val(new_code);
if(self.onChange) {
var good_parts = 0;
$( self.flags ).each(function(i, val) { good_parts = good_parts + val; });
self.onChange(good_parts === self.parts);
}
}
};
$.fn.couponCode.defaults = {
parts : 3,
separator : '-',
setFocus : false
( run in 1.572 second using v1.01-cache-2.11-cpan-94b05bcf43c )