Показать сообщение отдельно
  #7 (permalink)  
Старый 06.10.2014, 21:04
Новичок на форуме
Отправить личное сообщение для Эдвард Посмотреть профиль Найти все сообщения от Эдвард
 
Регистрация: 30.09.2014
Сообщений: 4

Упростил свою задачу по-максимуму, но преобразовать в массив так и не получается: http://med-75.hol.es/1/8.html :

<html>
<meta charset="utf-8">

<head>
<script type="text/javascript">

function calculator(form) {

var e1 = form.e1.value;
var e2 = form.e2.value;
var e3 = form.e3.value;

switch (e1)
{	
case "ab" : a1=1 , b1=1 , c1=""; break;
case "ac" : a1=1 , b1="" , c1=1; break;
case "bc" : a1="" , b1=1 , c1=1; break;
default:  a1="" , b1="" , c1="";
}

switch (e2)
{	
case "ab" : a2=1 , b2=1 , c2=""; break;
case "ac" : a2=1 , b2="" , c2=1; break;
case "bc" : a2="" , b2=1 , c2=1; break;
default:  a2="" , b2="" , c2="";
}

switch (e3)
{	
case "ab" : a3=1 , b3=1 , c3=""; break;
case "ac" : a3=1 , b3="" , c3=1; break;
case "bc" : a3="" , b3=1 , c3=1; break;
default:  a3="" , b3="" , c3="";
}

form.a1.value = a1;
form.a2.value = a2;
form.a3.value = a3;

form.b1.value = b1;
form.b2.value = b2;
form.b3.value = b3;

form.c1.value = c1;
form.c2.value = c2;
form.c3.value = c3;
}

</script>
</head>

<style type="text/css">
    .s1 {
      text-align: center;
      font-weight: bold;
      width: 100px;
    }
</style>

<form name="f1">

<select name="e1" class="s1">
 <option>ab</option>
 <option>ac</option>
 <option>bc</option>
</select>
<select name="e2" class="s1">
 <option>ab</option>
 <option>ac</option>
 <option>bc</option>
</select>
<select name="e3" class="s1">
 <option>ab</option>
 <option>ac</option>
 <option>bc</option>
 </select>

<br>

<input name="a1" type="text" class="s1"> <input name="a2" type="text" class="s1"> <input name="a3" type="text" class="s1">

<br>

<input name="b1" type="text" class="s1"> <input name="b2" type="text" class="s1"> <input name="b3" type="text" class="s1">

<br>

<input name="c1" type="text" class="s1"> <input name="c2" type="text" class="s1"> <input name="c3" type="text" class="s1">

<br><br>

<input type="button" value="Калькуляция" onClick="calculator(this.form)">
<input type="reset" value="Сброс">

</form>
</html>


В идеале вместо трёх switch-ей должен быть один – например, такой:

switch (e[i])
{	
case "ab" : a[i]=1 , b[i]=1 , c[i]=""; break;
case "ac" : a[i]=1 , b[i]="" , c[i]=1; break;
case "bc" : a[i]="" , b[i]=1 , c[i]=1; break;
default:  a[i]="" , b[i]="" , c[i]="";
}


Но опять же встаёт вопрос, как грамотно заполнить массивы для переменных e, a, b, c и создать для них соответствующий цикл.
Ответить с цитированием