input не переключается в checked
Вложений: 1
добрый день форумчане!
задача: есть список цен(input radio), который должен переключаться при изменении количества и так же количество должно изменяться в зависимости от выбранной цены (если кол-во ближе к верхнему пределу, то ставится верхний предел, если к нижнему то наоборот) принцип работы: функция "сравнение и переключение" получает объект JQ, определяет откуда был отправлен этот объект (или правильнее что это за объект) и уже на основании этого делает необходимые переключения и вычисления проблема: находится необходимый мне INPUT по его значению (VALUE) но вот почему то ему не присваевается атрибут CHECKED, и нет ни одной ошибки в консоли, а значит скрипт работает на УРА это основная часть скрипта (в HTML на всякий случай целиком, вдруг где то косяк, а я не заметил), а HTML странички вместе со скриптом в прикреплении jQuery(function($) { // сравнение и переключение function check_quantity(variable) { if (variable.hasClass("jsPriceIndex")) { var val = parseInt(variable.val()); //может быть самовывоз var qua = parseInt(jQuery('.jsQuantity').val(), 10); switch (val) { case 2://вторая цена if (qua < 1) { qua = 1; //количество 1-2шт } else if (qua > 2) { qua = 2; } break; case 3://третья цена if (qua < 3) { qua = 3; //количество 3-6шт } else if (qua > 6) { qua = 6; } break; case 4://четвёртая цена if (qua < 7) { qua = 7; //количество 7-10шт } else if (qua > 10) { qua = 10; } break; } jQuery('.jsQuantity').val(qua); } if (variable.hasClass("jsQuantity")) { var qua = parseInt(variable.val()); switch (true) { case (qua <= 1 || qua == 2): //количество 1-2шт var val = 2; //вторая цена break; case (qua >= 3 && qua <= 6): //количество 3-6шт var val = 3; //третья цена break; case (qua >= 7 && qua <= 10): //количество 7-10шт var val = 4; //четвёртая цена break; default: //количество любое var val = 1; //самовывоз } jQuery(".jsPriceIndex [value='" + val + "']").attr('checked', true); } } //увеличение количества $('.jsAddQuantity').click(function() { var quantity = parseInt($('.jsQuantity').val(), 10); quantity++; $('.jsQuantity').val(quantity); // отправка в сравнение и переключение check_quantity($('.jsQuantity')); return false; }); //уменьшение количества $('.jsRemoveQuantity').click(function() { var quantity = parseInt($('.jsQuantity').val(), 10); quantity--; if (quantity <= 0) { quantity = 1; } $('.jsQuantity').val(quantity); // отправка в сравнение и переключение check_quantity($('.jsQuantity')); return false; }); jQuery('.jsPriceIndex').on("click", function() { // отправка в сравнение и переключение check_quantity(jQuery(this)); }); //...................далее функции не имеющие отношения к проблеме................... }); |
Цитата:
jQuery(".jsPriceIndex[value='" + val + "']").attr('checked', true); |
вместо attr, нужно писать prop, хотя jQuery пока что прощает такую ошибку.
|
отлично - заработало!!!!
|
Часовой пояс GMT +3, время: 17:09. |