powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / input не переключается в checked
6 сообщений из 6, страница 1 из 1
input не переключается в checked
    #38602512
woojin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
добрый день форумчане!

задача:
есть список цен(input radio), который должен переключаться при изменении количества и так же количество должно изменяться в зависимости от выбранной цены (если кол-во ближе к верхнему пределу, то ставится верхний предел, если к нижнему то наоборот)

принцип работы:
функция "сравнение и переключение" получает объект JQ, определяет откуда был отправлен этот объект (или правильнее что это за объект) и уже на основании этого делает необходимые переключения и вычисления

проблема:
находится необходимый мне INPUT по его значению (VALUE) но вот почему то ему не присваевается атрибут CHECKED, и нет ни одной ошибки в консоли, а значит скрипт работает на УРА

это основная часть скрипта (в HTML на всякий случай целиком, вдруг где то косяк, а я не заметил), а HTML странички вместе со скриптом в прикреплении
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
            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));
                });
//...................далее функции не имеющие отношения к проблеме...................
            });
...
Рейтинг: 0 / 0
input не переключается в checked
    #38602618
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если консоль не выдает ошибок, это не значит что скрипт работает на УРА, это значит что нет ошибок. Скорее всего селектор ничего не возвращает.
...
Рейтинг: 0 / 0
input не переключается в checked
    #38602624
Кавказ-сила
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
input не переключается в checked
    #38602758
woojin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GustlyЕсли консоль не выдает ошибок, это не значит что скрипт работает на УРА, это значит что нет ошибок. Скорее всего селектор ничего не возвращает.

вместо
Код: javascript
1.
jQuery(".jsPriceIndex [value='" + val + "']").attr('checked', true);


делал
Код: javascript
1.
2.
3.
4.
                        var v = jQuery(".jsPriceIndex[value='" + val + "']");
                        console.log(v);
                        v.attr('checked', true);
                        console.log(v);


после первого console.log(v); - CHECKED не установлено
после второго console.log(v); - CHECKED установлено, но на странице не отображается

Кавказ-сила http://api.jquery.com/prop/
заменял attr на prop результат идентичен

что посоветуете?
...
Рейтинг: 0 / 0
input не переключается в checked
    #38602784
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
woojin , я х/з что ты там ваяешь...

Но все работает.

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
<!DOCTYPE html>
<html>
<head>
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function (){
	$('#on').click(function (){
		$('#test').prop('checked',true);
	});
	$('#off').click(function (){
		$('#test').prop('checked',false);
	});
});
</script>
</head>
<body>
<input type='checkbox' id='test' />
<button id='on'>On</button>
<button id='off'>Off</button>
</body>
</html>
...
Рейтинг: 0 / 0
input не переключается в checked
    #38602845
woojin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я что то и сам не понял, до этого prop не срабатывал :(
сейчас заменил attr на prop и всё заработало

всем спасибо!!!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / input не переключается в checked
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]