Davahkiin
Постоялец
- Регистрация
- 20 Мар 2014
- Сообщения
- 90
- Реакции
- 4
- Автор темы
- #1
Есть таблица с товаром, в ней поле с radio кнопками, в зависимости от выбранной отображает нужную стоимость доставки и считает общую сумму. Но если товаров несколько то скрипт не работает, поскольку совпадают названия radio button и переменной куда выводиться сумма. Можно как то в jquery сделать что бы скрипт отдельно работал к примеру для каждой новой строки таблицы?
Код:
$('input[name="quantity"],input[name="delivery"]').change(function() {
var col_price_delivery = $('.col-price-delivery');
$(document).find('.col-total').each(function() {
var q1 = $(this).prev().prev().prev().prev().prev().prev().find('input[name="q1"]').val();
q1 = q1.replace(/[^0-9\.]/g, '');
var q10 = $(this).prev().prev().prev().prev().prev().prev().find('input[name="q10"]').val();
var q100 = $(this).prev().prev().prev().prev().prev().prev().find('input[name="q100"]').val();
var quantity = $(this).prev().prev().prev().prev().prev().find('input[name="quantity"]').val();
var checked_option_radio = $('input:radio[name=delivery]:checked').val();
if (checked_option_radio==1)
{
delivery_price = 0;
} else if(checked_option_radio==2) {
delivery_price = 0;
}
else if(checked_option_radio==3) {
if (quantity >= 100){
delivery_price = $('input:[name=d100]').val();
} else if (quantity >= 10) {
delivery_price = $('input:[name=d10]').val();
} else if (quantity >= 1) {
delivery_price = $('input:[name=d1]').val();
}
delivery_price = parseInt(delivery_price.replace(/[^0-9\.]/g, ''), 10);
} else if(checked_option_radio==4) {
if (quantity >= 100){
delivery_price = $('input:[name=d100-low]').val();
} else if (quantity >= 10) {
delivery_price = $('input:[name=d10-low]').val();
} else if (quantity >= 1) {
delivery_price = $('input:[name=d1-low]').val();
}
delivery_price = parseInt(delivery_price.replace(/[^0-9\.]/g, ''), 10);
}
var sum = '';
var currency_l = '<?php echo $symbol_left; ?>';
var currency_r = '<?php echo $symbol_right; ?>';
if (q10 && q100) {
q10 = q10.replace(/[^0-9\.]/g, '');
q100 = q100.replace(/[^0-9\.]/g, '');
if (quantity < 10) {
sum = q1 * quantity + delivery_price;
} else if (quantity >= 100) {
sum = q100 * quantity + delivery_price;
} else if (quantity >= 10) {
sum = q10 * quantity + delivery_price;
}
} else {
sum = q1 * quantity;
}
if (currency_l) {
$(this).text(currency_l + sum);
} else {
$(this).text(sum + currency_r);
}
});
$(document).find('.col-total-delivery-row').each(function() {
var currency_l = '<?php echo $symbol_left; ?>';
var currency_r = '<?php echo $symbol_right; ?>';
if (currency_l) {
$(this).text(currency_l + delivery_price);
} else {
$(this).text(delivery_price + currency_r);
}
});
$(document).find('input[name=delivery_price]').each(function() {
$(this).val(delivery_price);
});
});