first commit
This commit is contained in:
72
public/js/modules/quantity.js
Normal file
72
public/js/modules/quantity.js
Normal file
@@ -0,0 +1,72 @@
|
||||
CNVS.Quantity = function() {
|
||||
var __core = SEMICOLON.Core;
|
||||
|
||||
return {
|
||||
init: function(selector) {
|
||||
if( __core.getSelector(selector, false, false).length < 1 ){
|
||||
return true;
|
||||
}
|
||||
|
||||
__core.initFunction({ class: 'has-plugin-quantity', event: 'pluginQuantityReady' });
|
||||
|
||||
selector = __core.getSelector( selector, false );
|
||||
if( selector.length < 1 ){
|
||||
return true;
|
||||
}
|
||||
|
||||
selector.forEach( function(element) {
|
||||
var plus = element.querySelector('.plus'),
|
||||
minus = element.querySelector('.minus'),
|
||||
input = element.querySelector('.qty');
|
||||
|
||||
var eventChange = new Event("change");
|
||||
|
||||
plus.onclick = function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
var value = input.value,
|
||||
step = input.getAttribute('step') || 1,
|
||||
max = input.getAttribute('max'),
|
||||
intRegex = /^\d+$/;
|
||||
|
||||
if( max && ( Number(elValue) >= Number( max ) ) ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if( intRegex.test( value ) ) {
|
||||
var valuePlus = Number(value) + Number(step);
|
||||
input.value = valuePlus;
|
||||
} else {
|
||||
input.value = Number(step);
|
||||
}
|
||||
|
||||
input.dispatchEvent(eventChange);
|
||||
};
|
||||
|
||||
minus.onclick = function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
var value = input.value,
|
||||
step = input.getAttribute('step') || 1,
|
||||
min = input.getAttribute('min'),
|
||||
intRegex = /^\d+$/;
|
||||
|
||||
if( !min || min < 0 ) {
|
||||
min = 1;
|
||||
}
|
||||
|
||||
if( intRegex.test( value ) ) {
|
||||
if( Number(value) > Number(min) ) {
|
||||
var valueMinus = Number(value) - Number(step);
|
||||
input.value = valueMinus;
|
||||
}
|
||||
} else {
|
||||
input.value = Number(step);
|
||||
}
|
||||
|
||||
input.dispatchEvent(eventChange);
|
||||
};
|
||||
});
|
||||
}
|
||||
};
|
||||
}();
|
||||
Reference in New Issue
Block a user