显示块时丢失的类型编号中的输入值 - >无 - >块 - jQuery

时间:2017-07-31 15:24:00

标签: javascript jquery

我有点困惑。我有很多type = number的输入,我做了一个脚本来对所选的每个输入的值求和。事实上,除了一件事之外,一切都很好。

例如,如果我将任何输入的值设置为任何数字(默认值除外),那么我将取消选择此输入(它继续显示:none,然后不会添加到我的总和中)。当我选择它时,它的值回到默认值(即1),但.val()在我取消选择它之前给出了我之前的值,所以我的总和不添加正确的值。此外,输入似乎不起作用。

我尝试将其隐藏在可见性上 - >之后可见但似乎不起作用...当我改变显示或可见度时,它会失去以前的值......

我不确定我是否清楚,但这里是代码:

$('.choices').click(function (evt) {
    // Add Quantity Selector
    var id = $(this).children('.option_name').attr('id');
    id = id.replace('name_', '');
    if ($(this).children('.option_price_raw').text() != '0' && !($(this).hasClass('epoxy-kit'))) {
        $(this).append('<div id="quantity_' + id + '" class="option_quantity" style="visibility: visible;">Quantity:<input class="qty_option" name="qty_option" min="1" type="number" value="1"/></div>');
    }

    $('.option_quantity').each(function () { $(this).css('visibility', 'hidden') });

    // Display quantity selector on selected
    $('.choices:not(.selected) .option_quantity').css('visibility', 'hidden');
    $('.choices:contains([id*="152615"]) .option_quantity').css('visibility', 'hidden');
    if ($(this).children('.option_price_raw').text() != "0" && !($(this).is('[id*="152615"]'))) {
        $('.selected .option_quantity').css('visibility', 'visible');
    }

    // Detect how many flakes selected
    var maximum_flakes = 8;
    var count_flakes = 0;
    var flakes_to_add = 0;

    $('.epoxy-flakes, .option_quantity').on('click change', function (evt) {
        count_flakes = 0;
        $('.epoxy-flakes.selected').each(function () {
            flakes_to_add = +($(this).children('.option_quantity').children('input').val());
            count_flakes += flakes_to_add;
        });

        if (count_flakes >= maximum_flakes) {
            $('.epoxy-flakes:not(.selected)').css('pointer-events', 'none');
            $('.max_error_msg').css('display', 'block');
        }
        else {
            $('.epoxy-flakes:not(.selected)').css('pointer-events', 'all');
            $('.max_error_msg').css('display', 'none');
        }
    });

    // Stop propagation on quantity selector
    $('.option_quantity').on('click change', function (evt) {
        evt.stopPropagation();
        update_price();
    });
});

感谢您的帮助

0 个答案:

没有答案