Ошибка
#1
Отправлено 15 Ноябрь 2013 - 23:01
#2
Отправлено 16 Ноябрь 2013 - 01:14
$(function() { if($('.goodsDataFormSubmitButton #quantity_wanted').length) { var quantity = $('.goodsDataFormSubmitButton #quantity_wanted'); $('.goodsDataMainDeliveryBlock .goodsDataFeatures td').each(function() { if($.trim($(this).text()) === 'Количество пар в коробке') { quantity.val(parseInt($.trim($(this).next().text()))); return(false); } }); } })
который на данный момент у вас используется. В данном случае проблема связана с отличием формы в карточке товара и в каталоге. В каталоге отсутствует поле quantity_wanted. Форме (<form>) в свою очередь должен быть задан класс goodsDataFormSubmitButton. Так же должен использоваться вывод характеристик в каталоге, чтобы смогло сработать условие ($.trim($(this).text()) === 'Количество пар в коробке'). Так как у вас не выполняются все выше указанные действия - в корзину добавляется всего один товар. Если следовать по списку, то вам для начала необходимо добавить класс к форме, после поле quantity_wanted и в последствии характеристики. Чтобы характеристики не отображались - можно их обвернуть в блок с стилем display: none; Первые 2 пункта вы можете просто перенести или подсмотреть из шаблона "Товар". Последний же сможете найти на форуме. Подобный вопрос об отображении характеристик в каталоге - задавался не однократно.
#3
Отправлено 16 Ноябрь 2013 - 01:24
#4
Отправлено 16 Ноябрь 2013 - 14:44
#5
Отправлено 19 Ноябрь 2013 - 03:57
#6
Отправлено 19 Ноябрь 2013 - 07:29
#7
Отправлено 20 Ноябрь 2013 - 01:04
<span style="display: none !important;"> Код который вы ранее удалили. </span>
Как сделаете данное изменение - напишите.
#8
Отправлено 20 Ноябрь 2013 - 01:20
#9
Отправлено 21 Ноябрь 2013 - 02:51
<span style="display: none !important;"> <form action="{CART_ADD_GOODS_MODIFICATION_URL | url_amp}" method="post" id="goodsListFormId{goods.MIN_PRICE_NOW_ID}" class="goodsListForm" style="margin-top: 10px;"> <input type="hidden" name="hash" value="{HASH}" /> <input type="hidden" name="form[goods_from]" value="{goods.GOODS_FROM}" /> <input type="hidden" name="form[goods_mod_id]" value="{goods.MIN_PRICE_NOW_ID}" /> <a class="readmore" onclick="$('#goodsListFormId{goods.MIN_PRICE_NOW_ID}').submit(); return false;" href="{CART_ADD_GOODS_MODIFICATION_URL | url_amp}?hash={HASH | url_amp}&form%5Bgoods_from%5D={goods.GOODS_FROM}&form%5Bgoods_mod_id%5D={goods.MIN_PRICE_NOW_ID}" title="Положить «{goods.NAME}» в корзину">Купить</a> </form></span>
и замените его на
<span> <form action="{CART_ADD_GOODS_MODIFICATION_URL | url_amp}" method="post" class="goodsListForm" style="margin-top: 10px;"> <span class="goodsDataMainModificationId" style="display: none;" rel="{goods.ID}"> <table cellpadding="0" cellspacing="0" width="100%" class="charactir-list"> {% FOR goods_attr_list %} <tr> <td class="fnt12b" width="50%">{goods.goods_attr_list.NAME}</td> <td>{goods.goods_attr_list.VALUE}</td> </tr> {% ENDFOR %} </table> </span> <input type="hidden" name="hash" value="{HASH}" /> <input type="hidden" name="form[goods_from]" value="{goods.GOODS_FROM}" /> <input type="hidden" name="form[goods_mod_id]" value="{goods.MIN_PRICE_NOW_ID}" /> <input type="hidden" name="form[goods_mod_quantity]" class="quantity_wanted" maxlength="12" value="1" /> <a class="readmore" onclick="$(this).closest('form').submit(); return false;" href="{CART_ADD_GOODS_MODIFICATION_URL | url_amp}?hash={HASH | url_amp}&form%5Bgoods_from%5D={goods.GOODS_FROM}&form%5Bgoods_mod_id%5D={goods.MIN_PRICE_NOW_ID}" title="Положить «{goods.NAME}» в корзину">Купить</a> </form> </span>
после в файл main.js добавьте код
$(function() { if($('.goodsDataMainModificationId .quantity_wanted').length) { $('.goodsDataMainModificationId .charactir-list td').each(function() { if($.trim($(this).text()) === 'Количество пар в коробке') { $(this).closest('.goodsDataMainModificationId').find('.quantity_wanted').val(parseInt($.trim($(this).next().text()))); } }); } });
#10
Отправлено 21 Ноябрь 2013 - 03:03
Сake (21 Ноябрь 2013 - 02:51) писал:
<span style="display: none !important;"> <form action="{CART_ADD_GOODS_MODIFICATION_URL | url_amp}" method="post" id="goodsListFormId{goods.MIN_PRICE_NOW_ID}" class="goodsListForm" style="margin-top: 10px;"> <input type="hidden" name="hash" value="{HASH}" /> <input type="hidden" name="form[goods_from]" value="{goods.GOODS_FROM}" /> <input type="hidden" name="form[goods_mod_id]" value="{goods.MIN_PRICE_NOW_ID}" /> <a class="readmore" onclick="$('#goodsListFormId{goods.MIN_PRICE_NOW_ID}').submit(); return false;" href="{CART_ADD_GOODS_MODIFICATION_URL | url_amp}?hash={HASH | url_amp}&form%5Bgoods_from%5D={goods.GOODS_FROM}&form%5Bgoods_mod_id%5D={goods.MIN_PRICE_NOW_ID}" title="Положить «{goods.NAME}» в корзину">Купить</a> </form></span>
и замените его на
<span> <form action="{CART_ADD_GOODS_MODIFICATION_URL | url_amp}" method="post" class="goodsListForm" style="margin-top: 10px;"> <span class="goodsDataMainModificationId" style="display: none;" rel="{goods.ID}"> <table cellpadding="0" cellspacing="0" width="100%" class="charactir-list"> {% FOR goods_attr_list %} <tr> <td class="fnt12b" width="50%">{goods.goods_attr_list.NAME}</td> <td>{goods.goods_attr_list.VALUE}</td> </tr> {% ENDFOR %} </table> </span> <input type="hidden" name="hash" value="{HASH}" /> <input type="hidden" name="form[goods_from]" value="{goods.GOODS_FROM}" /> <input type="hidden" name="form[goods_mod_id]" value="{goods.MIN_PRICE_NOW_ID}" /> <input type="hidden" name="form[goods_mod_quantity]" class="quantity_wanted" maxlength="12" value="1" /> <a class="readmore" onclick="$(this).closest('form').submit(); return false;" href="{CART_ADD_GOODS_MODIFICATION_URL | url_amp}?hash={HASH | url_amp}&form%5Bgoods_from%5D={goods.GOODS_FROM}&form%5Bgoods_mod_id%5D={goods.MIN_PRICE_NOW_ID}" title="Положить «{goods.NAME}» в корзину">Купить</a> </form> </span>
после в файл main.js добавьте код
$(function() { if($('.goodsDataMainModificationId .quantity_wanted').length) { $('.goodsDataMainModificationId .charactir-list td').each(function() { if($.trim($(this).text()) === 'Количество пар в коробке') { $(this).closest('.goodsDataMainModificationId').find('.quantity_wanted').val(parseInt($.trim($(this).next().text()))); } }); } });
#11
Отправлено 21 Ноябрь 2013 - 03:56
$(function() { if($('.goodsDataMainModificationId .quantity_wanted').length) { $('.goodsDataMainModificationId .charactir-list td').each(function() { if($.trim($(this).text()) === 'Количество пар в коробке') { $(this).closest('.goodsDataMainModificationId').find('.quantity_wanted').val(parseInt($.trim($(this).next().text()))); } }); } });
на следующий
$(function() { if($('.goodsListForm .quantity_wanted').length) { $('.goodsDataMainModificationId .charactir-list td').each(function() { if($.trim($(this).text()) === 'Количество в упаковке') { $(this).closest('.goodsListForm').find('.quantity_wanted').val(parseInt($.trim($(this).next().text()))); } }); } });
#12
Отправлено 21 Ноябрь 2013 - 10:42
#13
Отправлено 22 Ноябрь 2013 - 00:58
#14
Отправлено 22 Ноябрь 2013 - 01:22
#15
Отправлено 06 Декабрь 2013 - 00:19
#16
Отправлено 06 Декабрь 2013 - 03:44
// Добавление товара в корзину через ajax $('.goodsDataForm, .goodsToCartFromCompareForm, .goodsListForm').submit(function(){ $(this).nyroModalManual({ formIndicator: 'ajax_q', // Value added when a form is sent minWidth: 420, // Minimum width minHeight: 150, // Minimum height gallery: null // Gallery name if provided }); return false; });
заменить на
// Добавление товара в корзину через ajax $('.goodsDataForm, .goodsToCartFromCompareForm, .goodsListForm').live('submit', function(){ $(this).nyroModalManual({ formIndicator: 'ajax_q', // Value added when a form is sent minWidth: 420, // Minimum width minHeight: 150, // Minimum height gallery: null // Gallery name if provided }); return false; });
далее найдите код
$(function() { if($('.goodsListForm .quantity_wanted').length) { $('.goodsDataMainModificationId .charactir-list td').each(function() { if($.trim($(this).text()) === 'Количество пар в коробке') { $(this).closest('.goodsListForm').find('.quantity_wanted').val(parseInt($.trim($(this).next().text()))); } }); } }); $(function() { if($('.goodsListForm .quantity_wanted').length) { $('.goodsDataMainModificationId .charactir-list td').each(function() { if($.trim($(this).text()) === 'Количество в упаковке') { $(this).closest('.goodsListForm').find('.quantity_wanted').val(parseInt($.trim($(this).next().text()))); } }); } }); $(function() { if($('.goodsListForm .quantity_wanted').length) { $('.goodsDataMainModificationId .charactir-list td').each(function() { if($.trim($(this).text()) === 'Количество сумок в упаковке') { $(this).closest('.goodsListForm').find('.quantity_wanted').val(parseInt($.trim($(this).next().text()))); } }); } });
и замените его на
function goodsListFormQuantity() { if($('.goodsListForm .quantity_wanted').length) { $('.goodsDataMainModificationId .charactir-list td').each(function() { var list = ['Количество в упаковке', 'Количество пар в коробке', 'Количество сумок в упаковке']; if($.inArray($.trim($(this).text()), list) !== -1) { $(this).closest('.goodsListForm').find('.quantity_wanted').val(parseInt($.trim($(this).next().text()))); } }); } } $(function() { goodsListFormQuantity(); });
далее найдите
goodsListItemBlockSlide();
и замените на
goodsListItemBlockSlide(); goodsListFormQuantity();
#17
Отправлено 06 Декабрь 2013 - 03:55
Сake (06 Декабрь 2013 - 03:44) писал:
// Добавление товара в корзину через ajax $('.goodsDataForm, .goodsToCartFromCompareForm, .goodsListForm').submit(function(){ $(this).nyroModalManual({ formIndicator: 'ajax_q', // Value added when a form is sent minWidth: 420, // Minimum width minHeight: 150, // Minimum height gallery: null // Gallery name if provided }); return false; });
заменить на
// Добавление товара в корзину через ajax $('.goodsDataForm, .goodsToCartFromCompareForm, .goodsListForm').live('submit', function(){ $(this).nyroModalManual({ formIndicator: 'ajax_q', // Value added when a form is sent minWidth: 420, // Minimum width minHeight: 150, // Minimum height gallery: null // Gallery name if provided }); return false; });
далее найдите код
$(function() { if($('.goodsListForm .quantity_wanted').length) { $('.goodsDataMainModificationId .charactir-list td').each(function() { if($.trim($(this).text()) === 'Количество пар в коробке') { $(this).closest('.goodsListForm').find('.quantity_wanted').val(parseInt($.trim($(this).next().text()))); } }); } }); $(function() { if($('.goodsListForm .quantity_wanted').length) { $('.goodsDataMainModificationId .charactir-list td').each(function() { if($.trim($(this).text()) === 'Количество в упаковке') { $(this).closest('.goodsListForm').find('.quantity_wanted').val(parseInt($.trim($(this).next().text()))); } }); } }); $(function() { if($('.goodsListForm .quantity_wanted').length) { $('.goodsDataMainModificationId .charactir-list td').each(function() { if($.trim($(this).text()) === 'Количество сумок в упаковке') { $(this).closest('.goodsListForm').find('.quantity_wanted').val(parseInt($.trim($(this).next().text()))); } }); } });
и замените его на
function goodsListFormQuantity() { if($('.goodsListForm .quantity_wanted').length) { $('.goodsDataMainModificationId .charactir-list td').each(function() { var list = ['Количество в упаковке', 'Количество пар в коробке', 'Количество сумок в упаковке']; if($.inArray($.trim($(this).text()), list) !== -1) { $(this).closest('.goodsListForm').find('.quantity_wanted').val(parseInt($.trim($(this).next().text()))); } }); } } $(function() { goodsListFormQuantity(); });
далее найдите
goodsListItemBlockSlide();
и замените на
goodsListItemBlockSlide(); goodsListFormQuantity();
#18
Отправлено 06 Декабрь 2013 - 05:43
goodsListItemBlockSlide();
встречается несколько раз и как раз вы произвели замену в не том месте. Найдите в main.js
$(function() { if($('.goodsListItemBlock .goods_images_list img').length) { goodsListItemBlockSlide(); goodsListFormQuantity(); } });
и замените на
$(function() { if($('.goodsListItemBlock .goods_images_list img').length) { goodsListItemBlockSlide(); } });
тут данная замена по сути не нужна. Далее найдите
$(nav).html($(html).find(nav).first().html()); goodsListItemBlockSlide(); scroll_prod = false;
и замените на
$(nav).html($(html).find(nav).first().html()); goodsListItemBlockSlide(); goodsListFormQuantity(); scroll_prod = false;
замена необходима была именно в данном участке кода.
#19
Отправлено 06 Декабрь 2013 - 10:33
Сake (06 Декабрь 2013 - 05:43) писал:
goodsListItemBlockSlide();
встречается несколько раз и как раз вы произвели замену в не том месте. Найдите в main.js
$(function() { if($('.goodsListItemBlock .goods_images_list img').length) { goodsListItemBlockSlide(); goodsListFormQuantity(); } });
и замените на
$(function() { if($('.goodsListItemBlock .goods_images_list img').length) { goodsListItemBlockSlide(); } });
тут данная замена по сути не нужна. Далее найдите
$(nav).html($(html).find(nav).first().html()); goodsListItemBlockSlide(); scroll_prod = false;
и замените на
$(nav).html($(html).find(nav).first().html()); goodsListItemBlockSlide(); goodsListFormQuantity(); scroll_prod = false;
замена необходима была именно в данном участке кода.
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных