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


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

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


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


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

13d_200x0.png

<script>
jQuery(function($){
    $("#elements_itemcategoryvalue").val('9');
});
</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 делайте выбор.

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

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


  • 0
Posted Image
 

#3 Yastroitel

Yastroitel

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

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

 

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

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

 

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

 

Два вопроса:

 

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

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

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

TypeError: Cannot read property 'attr' of null

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

 

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

<script type="text/javascript">
	jQuery(function($) {
		var categories_elem = $('#elements_itemcategoryvalue'), primary_elem = $('#elements_itemcategoryprimary');
		if (!categories_elem || !primary_elem) return;

		categories_elem.bind('change', function() {
			var categories = $(this).val() ? $(this).val() : [], primary = primary_elem.val();
			if ($.inArray(primary, categories) == -1) primary_elem.val(categories.length ? categories.shift() : '');
		});

		primary_elem.bind('change', function() {
			var categories = categories_elem.val() ? categories_elem.val() : [], primary = $(this).val();
			if ($.inArray(primary, categories) == -1) {
				categories.push(primary);
				categories_elem.val(categories);
			}
		});
	});
</script>

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

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

Uncaught TypeError: undefined is not a function


  • 0

#4 Cheren-dow

Cheren-dow

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

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

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

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

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


  • 0
Posted Image
 

#5 Yastroitel

Yastroitel

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

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

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

#6 SmetDenis

SmetDenis

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

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

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

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

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

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

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

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

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

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


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

  • 0

#8 Yastroitel

Yastroitel

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


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

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

 

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

 

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

TypeError: Cannot read property 'attr' of null

2. 

. Это код добавляет сам элемент 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!