Помогите пофиксить минус в плагине

198
20 мая 2018, 14:40

Как можно пофиксить минус в плагине - Quantities and Units for WooCommerce. На добавление товара срабатывает, а минус - нет. Вот кусок кода из JS:

if (!String.prototype.getDecimals) {
String.prototype.getDecimals = function() {
    var num = this,
        match = ('' + num).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);
    if (!match)
        return 0;
    return Math.max(0, (match[1] ? match[1].length : 0) - (match[2] ? +match[2] : 0));
 }
}
jQuery(document).ready( function($) {
if ($('.qty').attr("pattern") == ''){
 $('.qty').removeAttr("pattern");
}
/*
*   Quantity Rule Validation
*   
*   If user enters a value that is out of bounds, 
*   it will be auto corrected to a valid value.
*/      
$(document).on('change', '.qty', function(e) {
    var $input = $(e.currentTarget);
    // Get values from input box
    var step = $input.attr( 'step' );
    var stepOrig = step;
    var new_qty = $input.val();
    var max = $input.attr( 'max' );
    var min = $input.attr( 'min' );
    var multiplier = function(){
        var zeros = stepOrig.getDecimals();
        var mult = "1";
        for (i = 0; i <= zeros; i++) mult = mult + "0";
        return parseInt(mult);
    };
    // Adjust default values if values are blank
    if ( min == '' || typeof min == 'undefined' ) 
        min = 1;
    if ( step == '' || typeof step == 'undefined') 
        step = 1;
    // Max Value Validation
    if ( +new_qty > +max && max != '' ) {
        new_qty = max;
    // Min Value Validation
    } else if ( +new_qty < +min && min != '' ) {
        new_qty = min;
    }
    // Calculate remainder
    step = step * multiplier();
    new_qty = new_qty * multiplier();
    min = min * multiplier();
    max = max* multiplier();
    var rem = ( new_qty - min ) % step;
    // Step Value Value Validation
    if ( rem != 0 ) {
        new_qty = +new_qty + (+step - +rem);
        // Max Value Validation
        if ( max > 0 && +new_qty > +max ) {
            new_qty = +new_qty - +step;
        }
    }
    // Set the new value
    $input.val( (new_qty/multiplier()).toFixed(stepOrig.getDecimals()) );
});
/*
*   Make sure minimum equals value 
*   To Fix: when min = 0 and val = 1 
*/
if ( $("body.single-product .qty").val() != $("body.single-product .qty").attr('min') && $("body.single-product .qty").attr('min') != '' ) {
    $("body.single-product .qty").val( $("body.single-product .qty").attr('min') );
}
/*
*   Variable Product Support
*   
*   Need to overwrite what WC changes with their js
*/
// Get localized Variables
if ( typeof ipq_validation !== 'undefined' ) {
    var start_min = ipq_validation.min;
    var start_max = ipq_validation.max;
    var start_step = ipq_validation.step;
}
// Update input box after variaiton selects are blured
$('.variations select').bind('blur',function() {
    // Update min
    if ( start_min != $('.qty').attr('min') && start_min != '' ) {
        $('.qty').attr('min', start_min );
    }
    // Update max
    if ( start_max != $('.qty').attr('max') && start_max != '' ) {
        $('.qty').attr('max', start_max );
    }
    // Update step
    if ( start_step != $('.qty').attr('step') && start_step != '' ) {
        $('.qty').attr('step', start_step );
    }
    // Make sure intput value is in bounds
    if ( start_min > $('.qty').attr('value') && start_min != '' ) {
        $('.qty').attr('value', start_min );
    }
});
});
READ ALSO
Переход по ссылкам без перезагрузки

Переход по ссылкам без перезагрузки

Как переходить по ссылкам на сайте без её перезагрузке с помощью JavaScript?

199
Json to Javascript from file

Json to Javascript from file

задание простое: достать обьекты из json файла и запихнуть в массив в виде обьектовКак это сделать, как это будет работать(можно ссылку на статью,...

200
Проблема с drawImage canvas

Проблема с drawImage canvas

не появлялась картинка вызванная drawImage,но проблема решилась с помощью addEventListener("load", function() {, но как быть с множеством подобных картинок,которые...

225