Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.04.2014, 05:46
Аватар для woojin
Аспирант
Отправить личное сообщение для woojin Посмотреть профиль Найти все сообщения от woojin
 
Регистрация: 13.08.2012
Сообщений: 38

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 Кб, 3 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 02.04.2014, 06:48
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Сообщение от woojin Посмотреть сообщение
jQuery(".jsPriceIndex [value='" + val + "']").attr('checked', true);
Ну так пробел в селекторе убери:
jQuery(".jsPriceIndex[value='" + val + "']").attr('checked', true);
Ответить с цитированием
  #3 (permalink)  
Старый 02.04.2014, 08:02
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

вместо attr, нужно писать prop, хотя jQuery пока что прощает такую ошибку.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #4 (permalink)  
Старый 02.04.2014, 12:01
Аватар для woojin
Аспирант
Отправить личное сообщение для woojin Посмотреть профиль Найти все сообщения от woojin
 
Регистрация: 13.08.2012
Сообщений: 38

отлично - заработало!!!!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поставить в input checked при нажатии на кнопку djonA Общие вопросы Javascript 9 20.03.2013 22:58
При добавлении DOCTYPE "плывут" размеры input type=text Demath (X)HTML/CSS 4 08.07.2012 19:27
Opera не выполняет style.fontSize=... в поле input Маэстро Opera, Safari и др. 6 20.06.2011 12:03
Копирование из одного input в другой input bar-boss Общие вопросы Javascript 7 08.04.2008 19:10
Разным элементам input - разное форматирование. Как? eclipse (X)HTML/CSS 1 25.10.2007 13:55