как вариант, но чуть посложней с алгоритмом:) разбирайтесь
<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, время: 12:25. |