как вариант, но чуть посложней с алгоритмом:) разбирайтесь
<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>
|
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>
|
Спасибо. Именно это я и хотел. А есть вариант как-нибудь попроще?
|
Цитата:
|
можно так:
<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>
|
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>
|
подскажите, а как мне эту хэш таблицу сделать через цикл, все-таки у меня не 4 значения и 57.)))
типа того чтобы было, слева номер или ключ(точно не знаю как называется), а справа значение
var v {
1: lun1,
2: lun2,
3: lun3,
..........
57: lun57
}
document.querySelector('select').onchange = function () {
console.log(v[this.value]);
}
|
| Часовой пояс GMT +3, время: 14:08. |