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


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

Автоматический выбор селекта


Лучший Ответ SmetDenis , 12 August 2014 - 10:39


Все работает.

13d_200x0.png

  1. <script>
  2. jQuery(function($){
  3. $("#elements_itemcategoryvalue").val('9');
  4. });
  5. </script>

Что у вас не получилось? Перейти к сообщению


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

#1 Yastroitel

Yastroitel

Отправлено 08 August 2014 - 13:36

Добрый день!

 

Подскажите пожалуйста как можно допилить такую вещь - необходимо открывать форму подачи материалом так, чтобы категория уже была выбрана

 

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

 

Категория это select с option

 

То есть первое что приходит в голову - внедрить яваскрипт который будет дописывать selected в нужном option

 

Правильный ход мыслей?

 

Если да - то подскажите пожалуйста наиболее корректный способ внедрения - ибо яваскрипт еще только в процессе изучения мною

 

Спасибо


  • 0

#2 Cheren-dow

Cheren-dow

Отправлено 08 August 2014 - 15:31

Yastroitel, вы в верном направлении. В ссылке добавьте get параметр со значением для селекта а на странице перехватывайте его и через JS делайте выбор.

  1. $('#select').val(2); // примерно такой JS

Информации много в сети как работать с селектом


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

#3 Yastroitel

Yastroitel

Отправлено 10 August 2014 - 19:22

Спасибо за подсказку!

 

Начитался уже миллион статей

Начал разбираться в Jquery (НАКОНЕЦ ТО)!!!

 

Но чего то пока не получается:))

 

Два вопроса:

 

1. Я правильно понимаю что код вида 

  1. $("elements_itemcategoryvalue [value='9']").attr("selected", "selected");

можно запустить из консоли Хрома? Просто при запуске - у меня вываливается ошибка 

TypeError: Cannot read property 'attr' of null

 Пока не могу понять откуда это???

 

2. А второй момент - после select есть странная функция

  1. <script type="text/javascript">
  2. jQuery(function($) {
  3. var categories_elem = $('#elements_itemcategoryvalue'), primary_elem = $('#elements_itemcategoryprimary');
  4. if (!categories_elem || !primary_elem) return;
  5.  
  6. categories_elem.bind('change', function() {
  7. var categories = $(this).val() ? $(this).val() : [], primary = primary_elem.val();
  8. if ($.inArray(primary, categories) == -1) primary_elem.val(categories.length ? categories.shift() : '');
  9. });
  10.  
  11. primary_elem.bind('change', function() {
  12. var categories = categories_elem.val() ? categories_elem.val() : [], primary = $(this).val();
  13. if ($.inArray(primary, categories) == -1) {
  14. categories.push(primary);
  15. categories_elem.val(categories);
  16. }
  17. });
  18. });
  19. </script>

Может она влияет?

И к тому же - Хром показывает с ней ошибку при выборе чего-нибудь из select

Uncaught TypeError: undefined is not a function


  • 0

#4 Cheren-dow

Cheren-dow

Отправлено 10 August 2014 - 22:59

Yastroitel сказал(а) 10 Ауг 2014 - 18:22:

1. Я правильно понимаю что код вида 

Правильно, но выборку делаете не понятно к чему. Нужно делать обращение через класс или id

Yastroitel сказал(а) 10 Ауг 2014 - 18:22:

2. А второй момент - после select есть странная функция

Что это за код, вы его сами писали или скопировали? Выше я вам писал что нужно передавать get параметр в адресной строке и с помощью соответсвующего значению параметра из get выбирать в селекте.


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

#5 Yastroitel

Yastroitel

Отправлено 11 August 2014 - 05:08

1. Ну как бы elements_itemcategoryvalue это ид селекта

2. Я не писал сам пока ничего. Этот код появляется после селекта сразу
  • 0

#6 SmetDenis

SmetDenis

Отправлено 11 August 2014 - 11:42

1. Так должно сработать
  1. $("#elements_itemcategoryvalue").val('9');
2. Это код добавляет сам элемент
media\zoo\elements\itemcategory\tmpl\submission.php
Нужен для того чтобы автоматически выбирать основную категорию, когда выбираете одну из доступных. Так же работает и панель управления.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#7 black_paw

black_paw

Отправлено 11 August 2014 - 13:22

SmetDenis сказал(а) 11 Ауг 2014 - 10:42:

1. Так должно сработать

  1. $("elements_itemcategoryvalue").val('9');

Так не сработает. Cheren-dow правильно сказал, что необходимо указывать что это класс или id

Таким образом необходимо сделать так

  1. $("#elements_itemcategoryvalue").val('9')

Но мне кажется, что в данном примере вы просто присваиваете #elements_itemcategoryvalue строковое значение '9'
Если же необходимо выделить элемент селекта, то мне кажется лучше так

  1. $("#elements_itemcategoryvalue [value='9']").attr('selected','selected');

А о том, в чем был изначально вопрос. может ТС проще создать восемь подач, и каждую жестко привязать к категории


Сообщение отредактировал black_paw: 11 August 2014 - 13:25

  • 0

#8 Yastroitel

Yastroitel

Отправлено 11 August 2014 - 14:10

black_paw сказал(а) 11 Ауг 2014 - 12:22:

  1.  

А о том, в чем был изначально вопрос. может ТС проще создать восемь подач, и каждую жестко привязать к категории

Конечно можно - но подач правда не восемь а больше - и потом такое решение мне изначально не нравится - так как в случае каких либо правок - править все придется. Короче сильно не красиво

 

Но возвращаясь к моей теме

 

1. Не сработал ни один из предложенных вариантов.

TypeError: Cannot read property 'attr' of null

2. 

SmetDenis сказал(а) 11 Ауг 2014 - 10:42:

. Это код добавляет сам элемент media\zoo\elements\itemcategory\tmpl\submission.php Нужен для того чтобы автоматически выбирать основную категорию, когда выбираете одну из доступных. Так же работает и панель управления.

Если этот код правильный и нужный - то наверно в консоли не должна появляться ошибка в момент выбора элемента?


  • 0

#9 SmetDenis

SmetDenis

Отправлено 11 August 2014 - 14:32

Ссылка на сайт облегчила бы задачу.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#10 Yastroitel

Yastroitel

Отправлено 11 August 2014 - 14:49

Отправил в личку


  • 0




Click to return to top of page in style!