Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 14.08.2012, 13:50
Интересующийся
Отправить личное сообщение для qazibum Посмотреть профиль Найти все сообщения от qazibum
 
Регистрация: 13.08.2012
Сообщений: 25

А как быть, если option с кавычками?
<select id="sel">
<option>красный "шелк"</option>
<option>синий "поезд"</option>
<option>белый</option>
</select>

как тут быть?

	    var prices = {
	        красный: 15,
	        синий: 25,
	        белый: 30
	    };

И еще, мне нужны только цифры, я взял только color, без value, и его дальше использую, правильно?
Ответить с цитированием
  #12 (permalink)  
Старый 14.08.2012, 15:11
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

тут нужна хорошая регулярка, учитывающие все возможные случаи
<script>
window.onload = function () {
	var div = document.getElementById('div');
	var colorPrices = {
		красный_шёлк: 15,
		синий_дух: 25, 
		белый_плен: 30
	};

	sel = document.createElement('select');
	var str = '';
	var obj = {};
	for (var i in colorPrices) {
		obj = document.createElement('option');
		obj.innerHTML = (i + '"').replace('_', ' "');
		sel.appendChild(obj);
	}
	document.body.appendChild(sel);
	var value = sel.options[0].text;
	alert(value  +': ' + colorPrices[value.replace(/\"/g, '').replace(' ', '_')]);
	
	sel.onchange = function () {
		value = sel.options[sel.selectedIndex].text;
		alert(value  +': ' + colorPrices[value.replace(/\"/g, '').replace(' ', '_')]);
	}
}
</script>


PS: не образец

Последний раз редактировалось bes, 14.08.2012 в 15:32.
Ответить с цитированием
  #13 (permalink)  
Старый 30.08.2012, 11:43
Интересующийся
Отправить личное сообщение для qazibum Посмотреть профиль Найти все сообщения от qazibum
 
Регистрация: 13.08.2012
Сообщений: 25

Сообщение от bes Посмотреть сообщение
тут нужна хорошая регулярка, учитывающие все возможные случаи
...
	var colorPrices = {
		красный_шёлк: 15,
		синий_дух: 25, 
		белый_плен: 30
	};
...
У меня первым пунктом, над "красный_шёлк" идет прочерк из нескольких тире "----------", как быть в этом случае? Если просто так и поставить, то не работает.
Ответить с цитированием
  #14 (permalink)  
Старый 30.08.2012, 12:09
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

не совсем понял, что требуется
<script>
window.onload = function () {
	var div = document.getElementById('div');
	var colorPrices = {
		красный_шёлк: 15,
		синий_дух: 25, 
		белый_плен: 30
	};

	sel = document.createElement('select');
	var str = '';
	var obj = {};
	obj = document.createElement('option');
	obj.innerHTML = '--------------------';
	sel.appendChild(obj);
	for (var i in colorPrices) {
		obj = document.createElement('option');
		obj.innerHTML = (i + '"').replace('_', ' "');
		sel.appendChild(obj);
	}
	document.body.appendChild(sel);
	
	sel.onchange = function () {
		if (this.selectedIndex != 0) {
			value = sel.options[sel.selectedIndex].text;
			alert(value  +': ' + colorPrices[value.replace(/\"/g, '').replace(' ', '_')]);
		}
	}
}
</script>
Ответить с цитированием
  #15 (permalink)  
Старый 30.08.2012, 19:15
Интересующийся
Отправить личное сообщение для qazibum Посмотреть профиль Найти все сообщения от qazibum
 
Регистрация: 13.08.2012
Сообщений: 25

Форма
<select id="param">
<option value="----">----</option>
<option value="красный шёлк">красный шёлк</option>
<option value="синий дух">синий дух</option>
<option value="белый плен">белый плен</option>
</select>

Соответственно в js пишем

...
	var colorPrices = {
		----: 0,
		красный_шёлк: 15,
		синий_дух: 25, 
		белый_плен: 30
	};
...


Но с тире не срабатывает, как должно. Как быть с тире? Что писать в js над строкой
красный_шёлк: 15,
Ответить с цитированием
  #16 (permalink)  
Старый 30.08.2012, 19:40
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

qazibum, в последнем скрипте, который написал вам bes, при выборе первого элемента списка (с индексом 0) ничего не будет происходить, о чем свидетельствует строка
if (this.selectedIndex != 0) {

кст дефисы в объекте ("----") нужно в кавычки ставить...
Ответить с цитированием
  #17 (permalink)  
Старый 30.08.2012, 19:40
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Можно его не добавлять в этот объект

<script>
window.onload = function () {
	var div = document.getElementById('div');
	var colorPrices = {
		красный_шёлк: 15,
		синий_дух: 25, 
		белый_плен: 30
	};
	
	sel = document.createElement('select');
	var str = '';
	var obj = {};
	obj = document.createElement('option');
	obj.innerHTML = '----';
	sel.appendChild(obj);
	for (var i in colorPrices) {
		obj = document.createElement('option');
		obj.innerHTML = (i + '"').replace('_', ' "');
		sel.appendChild(obj);
	}
	document.body.appendChild(sel);
	
	sel.onchange = function () {
		if (this.selectedIndex == 0) {
			value = '----';
			alert(value + ': ' + 0)
		} else {
			value = sel.options[sel.selectedIndex].text;
			alert(value  +': ' + colorPrices[value.replace(/\"/g, '').replace(' ', '_')]);
		}
	}
}
</script>


или добавить

<script>
window.onload = function () {
	var div = document.getElementById('div');
	var colorPrices = {
		first: 0,
		красный_шёлк: 15,
		синий_дух: 25, 
		белый_плен: 30
	};
	
	sel = document.createElement('select');
	var str = '';
	var obj = {};
	for (var i in colorPrices) {
		obj = document.createElement('option');
		if (i == 'first') {
			obj.innerHTML = '----'
		} else {
			obj.innerHTML = (i + '"').replace('_', ' "');
		}
		sel.appendChild(obj);
	}
	document.body.appendChild(sel);
	
	sel.onchange = function () {
		value = sel.options[sel.selectedIndex].text;
		if (this.selectedIndex == 0) {
			alert(value + ': ' + 0)
		} else {
			alert(value  +': ' + colorPrices[value.replace(/\"/g, '').replace(' ', '_')]);
		}
	}
}
</script>
Ответить с цитированием
  #18 (permalink)  
Старый 30.08.2012, 19:50
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от lord2kim
qazibum, в последнем скрипте, который написал вам bes, при выборе первого элемента списка (с индексом 0) ничего не будет
тогда ещё было неизвестно должно ли чего-то происходить или нет

Сообщение от lord2kim
кст дефисы в объекте ("----") нужно в кавычки ставить...
тогда придётся всё остальное дорабатывать, я уже писал
Сообщение от bes
PS: не образец
то есть подходит только для конкретных имён типа слово_слово, чтобы вывелось слово "слово"
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать многомерный пустой или как не создавать. PashPP Общие вопросы Javascript 6 02.08.2012 21:49
Как в IE динамически установить значение события onClick? Гость Элементы интерфейса 6 16.01.2011 23:46
Как узнать текущее значение TreePanel? astral_sight ExtJS 3 23.07.2010 13:03
30(1|2) редирект от сервера. Или как лучше сделать редирект при верной отсылке форма. pizzZ AJAX и COMET 2 18.02.2010 09:06
Переменная от переменной или как к имени переменной конкатенировать значение другой Aderba jQuery 5 12.11.2008 15:25