Перейти к содержимому


Фотография
- - - - -

в js не работает id с [ ]


Лучший Ответ tapakan , 04 May 2014 - 16:02

Здравствуйте, Cheren-dow, правильно говорит, квадратные скобки обозначают массив данных.

jQuery с парой одинаковыми id не работает.

Вам надо найти более подходящее решение. Скажите, какая именно у вас стоит задача?

 

П.С. Если вам надо просто по загрузке страницы добавить класс выбранному чекбоксу,  приблизительно подойдет такой js скрипт

<script type="text/javascript">
    jQuery(document).ready(function ($) {
        $('div.checkbox input:checkbox').each(function(){
            if($(this).is(':checked')){
                $(this).parent().addClass('checked');
            }
            if($(this).is(':disabled')){
                $(this).parent().addClass('disabled');
            }
        });
    })</script> 
Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 3

#1 Alexan

Alexan

Отправлено 04 May 2014 - 13:22

Приветствую, столкнулся с такой проблемой, 

пример:

<!DOCTYPE HTML>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>

<script>
    $('[name$="elements[edc309a1-6y55-48fe-8b12-05b264072b4y][option][]"]').ready(function(){
        if ($('#elements[edc309a1-6y55-48fe-8b12-05b264072b4y][option][]"]').is(':checked')) {
		    $('tr.class1').addClass('class2');
        }
    });
</script>

<input type="checkbox" checked="checked" id="elements[edc309a1-6y55-48fe-8b12-05b264072b4y][option][]" name="[name$="elements[edc309a1-6y55-48fe-8b12-05b264072b4y][option][]"]"/>
<table>
    <tr class="class1">
        <td>text</td>
    </tr>
</table>

</body></html>

если в этом примере заменить id="elements[edc309a1-6y55-48fe-8b12-05b264072b4y][option][]" например на id="id1", (и в скрипте где if соответственно), то все работает. Получается не работает из-за скобок в имени id.

 

Это частный случай, но могут быть и подобные скрипты с id.

 

Посоветуйте как быть?


  • 0

#2 Cheren-dow

Cheren-dow

Отправлено 04 May 2014 - 15:18

На сколько я знаю....

Alexan, если в форме указана квадратная скобка и не стоит значение значит там может быть не одно а несколько значений.

Возможно вам нужно через цикл перебирать и проверять значения.


  • 0
Изображение
 

#3 tapakan

tapakan

Отправлено 04 May 2014 - 16:02   Лучший Ответ

Здравствуйте, Cheren-dow, правильно говорит, квадратные скобки обозначают массив данных.

jQuery с парой одинаковыми id не работает.

Вам надо найти более подходящее решение. Скажите, какая именно у вас стоит задача?

 

П.С. Если вам надо просто по загрузке страницы добавить класс выбранному чекбоксу,  приблизительно подойдет такой js скрипт

<script type="text/javascript">
    jQuery(document).ready(function ($) {
        $('div.checkbox input:checkbox').each(function(){
            if($(this).is(':checked')){
                $(this).parent().addClass('checked');
            }
            if($(this).is(':disabled')){
                $(this).parent().addClass('disabled');
            }
        });
    })</script> 

Сообщение отредактировал tapakan: 04 May 2014 - 16:42

  • 0

#4 Alexan

Alexan

Отправлено 04 May 2014 - 21:22

задача в следующем: при загрузке submission на редактирование материала смотреть, если чекбокс с id... или с name... выбран, то показывать одну часть таблицы (tbody), если нет то скрыть и показать другие строки таблицы.

 

Вопрос, как jquery найти чекбокс по id или name (если их значения со скобками), посмотреть checked он или нет и в зависимости от этого присваивать классы видимости tbody.


  • 0




Click to return to top of page in style!