Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 10.11.2014, 14:10
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

как вариант, но чуть посложней с алгоритмом разбирайтесь
<html>
    <head>
        <title>Тестирование</title>
    </head>
    <body>
		<input>
		<select></select>
    <script>
var data = [
    {id: 13, lun: 'это фрукт', text: 'Картошка'},
    {id: 24, lun: 'это мартышка', text: 'Помидоры'},
    {id: 54, lun: 'это банан', text: 'Курица'},
    {id: 76, lun: 'это укроп', text: 'Индюк'}
], keys = {};

//init
var obj,
	select = document.querySelector('select'),
	f = document.createDocumentFragment(),
	option;
	
for (var i = 0, ln = data.length; i < ln; ++i) {
	obj = data[i];
	keys[obj.id] = i;
	
	option = document.createElement('option');
	option.innerHTML = obj.text;
	option.setAttribute('value', obj.id);
	f.appendChild(option);
}
select.appendChild(f);
 
var input = document.querySelector('input');
select.onchange = function () {
	var obj = data[keys[this.value]];
	input.value = obj.text + ' - ' + obj.lun;
}
    </script>
    </body>
  
</html>
Ответить с цитированием
  #12 (permalink)  
Старый 10.11.2014, 14:19
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

osetr,
Первое, что на ум пришло. Конечно эти данные, по-хорошему, динамически формировать надо. Но смысл такой, как вариант.
<html>
	 
	<head>
	    <title>Untitled</title>
	</head>
	 
	<body>




<html>
    <head>
        <title>Тестирование</title>
        <meta charset="windows-1251">
    </head>
    <body>
<div></div>
    <select id="select">
        <option >Картошка</option>
        <option >Помидоры</option>
        <option >Курица</option>
        <option >Индюк</option>
    </select>
<textarea id="hostt"></textarea>
<textarea id="lun"></textarea>
    <script>

get=function(id){
return document.querySelector("#"+id)
}

hostt=get("hostt")
lun=get("lun")
select=get("select")

dispatch=function(arg){
var veg="Овощ"
var anim="Животное"
var o={
"Картошка": veg,
"Помидоры": veg,
"Курица": anim,
"Индюк": anim
}
return o[arg]
}
select.onchange=function(){
hostt.value=lun.value=this.value+" это "+dispatch(this.value)
}
    </script>
    </body>
  
</html>
Ответить с цитированием
  #13 (permalink)  
Старый 10.11.2014, 14:22
Интересующийся
Отправить личное сообщение для osetr Посмотреть профиль Найти все сообщения от osetr
 
Регистрация: 07.11.2014
Сообщений: 21

Спасибо. Именно это я и хотел. А есть вариант как-нибудь попроще?
Ответить с цитированием
  #14 (permalink)  
Старый 10.11.2014, 14:26
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

Сообщение от osetr
как-нибудь попроще?
хз, как проще, все равно где то хеш хранить надо, сами то ключи со значениями не свяжутся. Вроде, проще некуда.
Ответить с цитированием
  #15 (permalink)  
Старый 10.11.2014, 14:36
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

можно так:
<html>
    <head>
        <title>Тестирование</title>
        <meta charset="windows-1251">
    </head>
    <body>
<div></div>
	<input>
    <select id="select" onchange="document.querySelector('input').value = this.value;">
        <option value="Овощ - Картошка">Картошка</option>
        <option value="Овощ - Помидоры">Помидоры</option>
        <option value="Животное - Курица">Курица</option>
        <option value="Животное - Индюк">Индюк</option>
    </select>
    </body>
  
</html>
Ответить с цитированием
  #16 (permalink)  
Старый 10.11.2014, 14:58
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

osetr,

Вот так еще можно. Проще-не проще, но изящней как-то, меньше костылей, хотя не типичненько.
<html>
	 
	<head>
	    <title>Untitled</title>
	</head>
	 
	<body>




<html>
    <head>
        <title>Тестирование</title>
        <meta charset="windows-1251">
    </head>
    <body>
<div></div>
    <select id="select">
        <option >Картошка</option>
        <option >Помидоры</option>
        <option >Курица</option>
        <option >Индюк</option>
    </select>
<textarea id="hostt"></textarea>
<textarea id="lun"></textarea>
    <script>

get=function(id){
return document.querySelector("#"+id)
}

hostt=get("hostt")
lun=get("lun")
select=get("select")

dispatch=function(arg){
var re=new RegExp(arg)
var get=function(word){
   for(var i in data){
      if(re.test(i)) return data[i]
}
}
var data={
"Картошка Помидоры": "овощ",
"Курица Индюк": "птица"
}

return get(arg)
}
select.onchange=function(){
hostt.value=lun.value=this.value+" это "+dispatch(this.value)
}
    </script>
    </body>
  
</html>
Ответить с цитированием
  #17 (permalink)  
Старый 10.11.2014, 21:05
Интересующийся
Отправить личное сообщение для osetr Посмотреть профиль Найти все сообщения от osetr
 
Регистрация: 07.11.2014
Сообщений: 21

подскажите, а как мне эту хэш таблицу сделать через цикл, все-таки у меня не 4 значения и 57.)))
типа того чтобы было, слева номер или ключ(точно не знаю как называется), а справа значение
var v {
1: lun1,
2: lun2,
3: lun3,
..........
57: lun57
}
document.querySelector('select').onchange = function () {
console.log(v[this.value]);
}
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Подскажите, как реализовать (пара строчек кода) Volonter jQuery 0 31.01.2014 14:58
Как реализовать отправку содержимого из iframe нажатием комбинации клавиш ctrl+enter Naizer Общие вопросы Javascript 4 27.11.2013 17:39
Подскажите как реализовать такую задачу Gasherez (X)HTML/CSS 0 20.09.2013 19:59
Подскажите как мне вставить таблицу на сайт Sohne Серверные языки и технологии 5 06.10.2011 19:12