18.04.2011, 18:22
|
Новичок на форуме
|
|
Регистрация: 18.04.2011
Сообщений: 2
|
|
Два селекта на сравнении
Набросал такой код, вернее форму со скриптом:
Код:
|
<div align="center"><form name="calcForm">
<script>
function language(){
chto=document.getElementById('lang11').value;
if(chto=='l1rus'){
document.calcForm.lang2.options.length=0;
document.calcForm.lang2.options[0]=new Option("---", "0", true, false);
document.calcForm.lang2.options[1]=new Option("Английский", "l2eng", false, false);
document.calcForm.lang2.options[2]=new Option("Немецкий", "l2deu", false, false);
document.calcForm.lang2.options[3]=new Option("Французский", "l2fra", false, false);
}
if(chto=='l1eng'){
document.calcForm.lang2.options.length=0;
document.calcForm.lang2.options[0]=new Option("---", "0", true, false);
document.calcForm.lang2.options[1]=new Option("Русский", "l2rus", false, false);
}
if(chto=='l1deu'){
document.calcForm.lang2.options.length=0;
document.calcForm.lang2.options[0]=new Option("---", "0", true, false);
document.calcForm.lang2.options[1]=new Option("Русский", "l2rus", false, false);
}
if(chto=='l1fra'){
document.calcForm.lang2.options.length=0;
document.calcForm.lang2.options[0]=new Option("---", "0", true, false);
document.calcForm.lang2.options[1]=new Option("Русский", "l2rus", false, false);
}
}
</script>
<n>Перевести с </n>
<select name="lang1" id="lang11" size="1" onchange="language()">
<option value="0">---</option>
<option name="l1rus" value="l1rus">Русского</option>
<option name="l1eng" value="l1eng">Английского</option>
<option name="l1deu" value="l1deu">Немецкого</option>
<option name="l1fra" value="l1fra">Французского</option>
</select><n> языка на </n>
<select name="lang2" id="lang2"size="1" onchange="prices()">
<option value="0">---</option>
</select> <n> язык</n>
</form></div> |
А дальше сообразить не могу. Мне нужно на основании обоих выбранных селектов образовать цену. Например: с английского на русский - 100, с русского на французский - 101.
Пробовал и через массив (знаю что не правильно), и через селектединдекс... Но ничего не работает.
Народ, подскажите, хотя бы в каком направлении двигаться?
|
|
18.04.2011, 19:50
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
не написали,откуда цены берете
я поставил их в value select'ов
<div align="center"><form name="calcForm">
<n>Перевести с </n>
<select name="lang1" id="lang11" size="1" onchange="language()">
<option value="0">---</option>
<option name="l1rus" value="1">Русского</option>
<option name="l1eng" value="2">Английского</option>
<option name="l1deu" value="3">Немецкого</option>
<option name="l1fra" value="4">Французского</option>
</select>
<n> языка на </n>
<select name="lang1" id="lang12" size="1">
<option value="0">Русский</option>
<option value="10">Английский</option>
<option value="20">Немецкий</option>
<option value="30">Французский</option>
</select> <n> язык</n>
</form>
<b>Цена : <u>0</u></b>
</div>
<script>
a = document.getElementsByTagName("u")[0]
pr = document.getElementsByTagName("select")
pr[0].onchange = pr[1].onchange = function(){
a.innerHTML = +pr[0].value + pr[1].value;
}
</script>
Последний раз редактировалось melky, 18.04.2011 в 22:16.
|
|
18.04.2011, 20:42
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
leshkoff,
Вариант формирования селекта и цены ...
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<div align="center">
<form name="calcForm" id="calcForm">
<span>Перевести с</span>
<select name="lang1" id="lang1" size="1" onchange="lang_set(this.value)">
<option value="">---</option>
<option value="rus">Русского</option>
<option value="eng">Английского</option>
<option value="deu">Немецкого</option>
<option value="fra">Французского</option>
</select>
<span>языка на</span>
<select name="lang2" id="lang2" size="1" onchange="prices(this.value)">
<option value="0">---</option>
</select>
<span>язык</span>
<br>
<span>цена: </span><span id="price"></span>
</form>
</div><script type="text/javascript">
var lang_rus = {'rus':'Русский','eng':'Английский','deu':'Немецкий','fra':'Французский'},
lang = {
'rus':{'eng':100,'deu':101,'fra':102},
'eng':{'rus':103,'deu':104,'fra':105},
'deu':{'rus':106,'eng':107,'fra':108},
'fra':{'rus':109,'eng':110,'deu':111}
};
function lang_set(b) {
var a = document.calcForm.lang2;
a.options.length = 1;
if(lang[b])for (var c in lang[b]) a.options[a.options.length] = new Option(lang_rus[c], lang[b][c]);
prices(0)
};
function prices(a)
{
document.getElementById('price').innerHTML = a
}
</script>
</body>
</html>
|
|
18.04.2011, 20:51
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Сообщение от melky
|
a.innerHTML = pr[0].value + pr[1].value;
|
Может плюсик добавить перед pr[0].value?
|
|
18.04.2011, 22:16
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
хоть и строка, но в хроме и так работает
|
|
|
|