Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.05.2013, 14:01
Профессор
Отправить личное сообщение для Faab Посмотреть профиль Найти все сообщения от Faab
 
Регистрация: 16.04.2012
Сообщений: 310

дайте ссылку на теорию
Вот опять столкнулся с почти с такой же проблемой, как вчера. У меня есть мультипл селект с id="categories"... я хочу при каждом change заносить выбранные значения заносить в аrr[].

Так как задаю почти одинаковый вопрос как и вчера, спрашиваю следующие скажите какой раздел теории или какие функции надо посмотреть в интернете что бы уметь считывать значения с объекта.

Спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 12.05.2013, 14:21
Профессор
Отправить личное сообщение для Faab Посмотреть профиль Найти все сообщения от Faab
 
Регистрация: 16.04.2012
Сообщений: 310

Или здесь надо ставить инфдификаторы на option и считывать с каждого с помощью value и заносить в массив? Правда так как список генерируется, это не совсем удобно, но возможно... Выбрать такой путь?
Ответить с цитированием
  #3 (permalink)  
Старый 12.05.2013, 16:35
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Ну ты и наркоман...

<select multiple="" size="3">
    <option value="v1">Value 1</option>
    <option value="v2">Value 2</option>
    <option value="v3">Value 3</option>
</select>
<script src="//code.jquery.com/jquery-latest.min.js"></script>
<script>
$('select').change(function(){
    var values = $(this).val();
    alert(values);
});
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 12.05.2013, 16:53
Профессор
Отправить личное сообщение для Faab Посмотреть профиль Найти все сообщения от Faab
 
Регистрация: 16.04.2012
Сообщений: 310

А я писал так:

$("#categories").change(function(){  //тут смысл большой не меняется, правильно?
    var values = this.val(); //вот здесь у меня вылетала ошибка
    alert(values);
});


Что мне поискать в интернете, что бы я понял почему надо писать $(this) а не просто this, как ты использовал в прошлом примере. Читаю сейчас параллельно учебник по JS, но кажется тут чисто JQ уже.

В любом случае ещё раз спасибо.

Последний раз редактировалось Faab, 12.05.2013 в 17:25.
Ответить с цитированием
  #5 (permalink)  
Старый 12.05.2013, 18:05
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Для начала уясни, что $ - это функция. В качестве аргумента принимает селектор или DOM-элемент, и возвращает jquery-коллекцию, которая имеет различные методы, в том числе и val() .
Список методов смотри на http://api.jquery.com или мож че на русском найдешь.
То, что this внутри обработчиков, навешанных методами jquery указывает на голый DOM-элемент, а не на jquery-обертку - это нужно просто запомнить.
И да, пока не освоишь базовый JS, нативные методы для работы с DOM - забудь про jQuery, иначе так и будешь вечно путаться.
Ответить с цитированием
  #6 (permalink)  
Старый 12.05.2013, 18:10
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

К примеру вот код jquery, отвечающий за создание списка значений селекта:

get: function( elem ) {
				var value, option,
					options = elem.options,
					index = elem.selectedIndex,
					one = elem.type === "select-one" || index < 0,
					values = one ? null : [],
					max = one ? index + 1 : options.length,
					i = index < 0 ?
						max :
						one ? index : 0;

				// Loop through all the selected options
				for ( ; i < max; i++ ) {
					option = options[ i ];

					// oldIE doesn't update selected after form reset (#2551)
					if ( ( option.selected || i === index ) &&
							// Don't return options that are disabled or in a disabled optgroup
							( jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) &&
							( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) {

						// Get the specific value for the option
						value = jQuery( option ).val();

						// We don't need an array for one selects
						if ( one ) {
							return value;
						}

						// Multi-Selects return an array
						values.push( value );
					}
				}

				return values;
			}
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбрать ссылку и выполнить по ней переход djonA Общие вопросы Javascript 12 19.11.2012 02:26
Смена картинок при клике ссылку illuminat jQuery 3 14.09.2012 17:50
Имитация нажатия на ссылку martinss AJAX и COMET 6 28.05.2012 20:35
оператор return возвращает значение, а не ссылку. Vertuplatonium Общие вопросы Javascript 4 16.05.2011 14:02
Получить ссылку на iframe PAMAC Javascript под браузер 2 23.02.2010 15:12