Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2014, 05:47   #1
woojin
Пользователь
 
Регистрация: 20.10.2013
Сообщений: 32
Вопрос input не переключается в checked

добрый день форумчане!

задача:
есть список цен(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));
                });
//...................далее функции не имеющие отношения к проблеме...................
            });
Вложения
Тип файла: txt to_forum.html.txt (8.5 Кб, 7 просмотров)
woojin вне форума Ответить с цитированием
Старый 02.04.2014, 12:08   #2
woojin
Пользователь
 
Регистрация: 20.10.2013
Сообщений: 32
По умолчанию

убрал пробел и заменил attr на prop
Код:
jQuery(".jsPriceIndex[value='" + val + "']").prop('checked', true);
и всё заработало!!!!
woojin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не переключается язык Wooper Помощь студентам 4 13.04.2011 18:52
ASP.NET // Не переключается RadioButton - Аномалия Veiron ASP.NET 2 21.11.2010 15:36
Не переключается раскладка Puxtak Свободное общение 20 15.03.2009 00:15
[VC#] DataGridView - DataGridViewCheckBoxColumn - Checked MuForum Общие вопросы .NET 0 07.06.2008 00:57