我有点困惑。我有很多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();
});
});
感谢您的帮助