Показать сообщение отдельно
  #10 (permalink)  
Старый 21.02.2013, 15:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

miles, код лучше располагать здесь, так вам быстрее ответят.не особо понятно где три массива
Вариант ... (очередной дубликат зависимых селектов, которых множество на форуме)
<!DOCTYPE html>
<html>
<head>
  <title>Пример работы калькулятора</title>
  <meta charset="UTF-8">
</head>

<body>
  <table cols="2" width="40%">
    <tr>
      <th><select name="item">
        </select></th>

      <th><select name="item">
        </select></th>
    </tr>

    <tr>
      <th><img name="tool"></th>
      <th id="total">1$</th>
    </tr>
  </table>

  <form>

    <script  type="text/javascript">

    var base = [
    {   src : "http://javascript.ru/forum/images/smilies/thank_you2.gif",
        height : [1, 2, 3, 4],
        price : [1, 1, 1, 1],
        text : "Оплеточные рукава"
    },
    {   src : "http://javascript.ru/forum/images/smilies/dance3.gif",
        height : [1, 2, 3, 4, 5],
        price : [2, 2, 2, 2, 1],//за 5 метров скидка
        text : "Навивочные рукава"
    }
    ]


    var select = document.getElementsByTagName('select')[0];
    for (var k=0; k< base.length; k++)  {
           select.options[k] = new Option(base[k]['text'], k);
        }
    function init() {
        var i = this.selectedIndex || 0
        var img =  document.getElementsByTagName('img')[0]
        var src =  base[i]['src'];
        img.src = src;
        var select = document.getElementsByTagName('select')[1];
        select.options.length=0
        var height = base[i]['height'];
        var price = base[i]['price'];
        for (var k=0; k< height.length; k++)  {
           select.options[k] = new Option(height[k]+"м", height[k]*price[k]);
        }
        var total =  document.getElementById('total');
        total.innerHTML = height[0]*price[0]+"$"
    }
    select.addEventListener('change', init);
    init();
    select = document.getElementsByTagName('select')[1];
    function count()
    {
       var i = this.selectedIndex || 0;
       var value = this.options[i].value ;
       var total =  document.getElementById('total');
       total.innerHTML = value+"$"
    }
    select.addEventListener('change', count);
    </script>
  </form>
</body>
</html>

Последний раз редактировалось рони, 21.02.2013 в 15:14.
Ответить с цитированием