Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Динамич.создание эл-ов. Проблема с select / 9 сообщений из 9, страница 1 из 1
05.01.2014, 11:13
    #38517907
ILLHEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамич.создание эл-ов. Проблема с select
бодрый день!
на _http://poseidonswim.freeopti.ru/uslugi/shapochki_s_logo_i_imenem есть html
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<table id="shopping-cart-table" class="data-table cart-table">
...
<tr class="record_parrent">
<td>
  <select class="color order" style="width: 100% !important; background-color: blue;">
    <option value="0">--- ВЫБЕРИТЕ ЦВЕТ ---</option>
    <option value="white" style="background-color: white">белый</option>
    <option value="yellow" style="background-color: yellow">желтый</option>
    <option value="green" style="background-color: green">зеленый</option>
    <option value="red" style="background-color: red">красный</option>
    <option value="blue" style="background-color: blue">синий</option>								
  </select>
</td>
</tr>
...
<button ... class="... add-record"><span><span>Добавить новую строку</span></span></button>


есть js (на тойжэ странице) - создание записи таблицы по данным из куков. .record_parrent - шаблон записи, из кука наполняем его, клонируем и добавляем в таблицу
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
var el;
tmp_cart = getCookie('cart'); totalnum = 0; // читаем кук cart
jQuery.each( cart.split('|'), function(i, n){ //разбиваем кук cart на "строки"
	if (n.length>0) { // формат "строки" в куке cart:  id=color=name=qty
		it = n.split('=');// разбиваем строку кука на элементы и устанавливаем значения в шаблоне
		jQuery('.record_parrent .rec_id').html(it[0]);
		jQuery('.record_parrent .color option').each(function() { // настраиваем select.color шаблона по данным из кука (it[1] - цвет)
			jQuery(this).removeAttr('selected');
			if (it[1]==jQuery(this).val()) {
				jQuery(this).attr("selected","selected"); // устанавливается во всех браузерах, но в ИЕ не отображает выбранное в select-e
				jQuery(this).parent().css('background-color',it[1]);
			}
		});
			...
		el = jQuery(".record_parrent").clone(true,true); // клонируем, меняем класс клона и добавляем в боди таблицы
		el.removeClass("record_parrent"); el.addClass("record_inserted");
		el.appendTo( "tbody" ); 
...


работает во всех браузерах кроме ИЕ (проверяю в ИЕ8). отладка показывает что OPTION имеет атрибут selected. но в поле select оно не отображается
подскажите в чем собака порылась

можно готовую таблицу отдавать сервером (обычно так и делаю), но решил попробовать вариант с js-созданием. и чтото не катит в ИЕ (
говнокод конечно есть. но это отладка %)
...
Рейтинг: 0 / 0
05.01.2014, 11:33
    #38517913
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамич.создание эл-ов. Проблема с select
попробуйте после цикла сделать
Код: javascript
1.
jQuery('.record_parrent .color').val(...
...
Рейтинг: 0 / 0
05.01.2014, 12:03
    #38517916
ILLHEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамич.создание эл-ов. Проблема с select
Паганель,

делал. я затер это в сообщении. в исходнике закоментарено:
сейчас вынес за цикл
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
			jQuery('.record_parrent .color option').each(function() {
				jQuery(this).removeAttr('selected');
				if (it[1]==jQuery(this).val()) {
					jQuery(this).attr("selected","selected");
					jQuery(this).parent().css('background-color',it[1]);
					//jQuery(this).parent().attr('value',it[1]);
				}
				jQuery('.record_parrent .color').attr('value',it[1]);
			});


значение устанавливается, но тожэ не дает эффект. может проблема что ИЕ не умеет клонировать именно селект?
у вас ИЕ выше 8-го? работает? если да то плюну ) на 8-ой
...
Рейтинг: 0 / 0
05.01.2014, 12:06
    #38517917
ILLHEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамич.создание эл-ов. Проблема с select
зы: я гдето недавно читал что джэквери в новых (>=2) отказались от поддержки ИЕ до 8 включительно
...
Рейтинг: 0 / 0
05.01.2014, 12:14
    #38517922
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамич.создание эл-ов. Проблема с select
попробуйте все-таки http://api.jquery.com/val/
вместо http://api.jquery.com/attr/

я сейчас дома из-под кубунты пишу, поэтому ИЕ нету никакого
...
Рейтинг: 0 / 0
05.01.2014, 12:29
    #38517926
ILLHEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамич.создание эл-ов. Проблема с select
Паганель,

я попробовал с val. затер закоменченное в сообщении. сейчас перепроверил. тажэ хня только в профиль (
в отладчике видно что значение присваивается. в отладчике только нужный опшн тоже селектед = тру
тьфу на ИЕ8

спасибо за участие
...
Рейтинг: 0 / 0
05.01.2014, 12:36
    #38517927
ILLHEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамич.создание эл-ов. Проблема с select
или на чистом js этот написать... но овчинка выделки не стоит имхо
...
Рейтинг: 0 / 0
05.01.2014, 15:17
    #38517975
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамич.создание эл-ов. Проблема с select
ILLHEAD, в документации сказано что для работы с selected следует использовать метод prop. Попробуй вместо attr() вызвать jQuery(this).prop('selected', true), а вместо jQuery(this).removeAttr('selected') написать jQuery(this).prop('selected', false);
...
Рейтинг: 0 / 0
05.01.2014, 16:18
    #38517995
ILLHEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамич.создание эл-ов. Проблема с select
bazile,

попробовал. эффект 0
попробовал и js-ом
Код: javascript
1.
2.
3.
var js_el = jQuery(this);
var att = document.createAttribute("selected");
js_el[0].setAttributeNode(att);

эффект 0

вобщем разобрался. я манипулировал на шаблоне который потом клонирую. в клоне опшн уже без селектед. перенес действия с опшн на клон и усе срослось
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
...
			el = jQuery(".record_parrent").clone(true,true);
			kid = jQuery(el).children('td')[1];
			kid = jQuery(kid).children('select')[0];
			kid = jQuery(kid).children('option');
			jQuery(kid).each(function(){
				jQuery(this).removeAttr('selected');
				if (it[1]==jQuery(this).val()) {
					jQuery(this).attr("selected",true);
					jQuery(this).parent().css('background-color',it[1]);
				}
			});
			el.removeClass("record_parrent"); el.addClass("record_inserted");
			el.appendTo( "tbody" );
...



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


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