需要在javascript中执行操作

时间:2013-02-23 21:24:59

标签: javascript

我想减去2个值,并使用javascript立即进行计算。 我需要找到一种方法来定位JS中的第二个<select> id,因为我回应了选项,我这样做:

<tr> <!-- first row, with css -->
<td style="width:50%;">From</td>
<td style="width:50%;">
    <select name="fromlevel" id="fromlevel" style="width:100%; text-align:center; font-weight:bold;">
        <?php 
        $i = 1;
        while ($i < 91) {
            echo '
            <option value=f' . $i . ' name=f' . $i . '>' . $i . '</option>';
            $i++;
        }
        ?>  
    </select>
</td>
</tr>
<tr> <!-- second row, with css -->
<td>To</td>
<td>
    <select name="tolevel" id="tolevel" style="width:100%; text-align:center; font-weight:bold;">
        <?php 
        $i = 1;

        while ($i < 91) {
            echo '
            <option value=t' . $i . ' name=t' . $i . '>' . $i . '</option>';
            $i++;
        }
        ?>  
    </select>
</td>
</tr>

我用f1,f2,f3,f4等引用了ID,以及t1,t2,t3,t4等。我在JS中如何区分它们?

下面的JS工作如果我只是将第一个<select>的ID称为$ i,我对JS非常糟糕,而且我不知道如何制作该参考文件f $ i

var level_current_prices = {};

for(var i = 1; i <= 90; i++ ) {
   level_current_prices[i] = i;
}

function getCurrentLevel() { // current level, from
    var levelSetPrice=0;
    var theForm = document.forms["priceCalcForm"];
    var selectedLevel = theForm.elements["fromlevel"];
    levelSetPrice = level_current_prices[selectedLevel.value];
    return levelSetPrice;
}

function calculateTotal() {
    var LevelPrice = getCurrentLevel();
    var divobj = document.getElementById('totalPrice');
    divobj.style.display='block';
    divobj.innerHTML = "Total Price For the Leveling $"+LevelPrice;
}

function hideTotal() {
    var divobj = document.getElementById('totalPrice');
    divobj.style.display='none';
}

document.forms['priceCalcForm'].fromlevel.onchange = function () {
   calculateTotal();
}

1 个答案:

答案 0 :(得分:0)

你的问题有点困惑。我想你在谈论以下几行?

for(var i = 1; i <= 90; i++ ) {
   level_current_prices[i] = i;
}

使用数据预先填充对象,level_current_prices的索引是字符串,而不是数字(可以是数组)。您可以在括号内完成所需的操作以生成密钥,但您只需要level_current_prices['f'+i]

如果这不是您的意思,请澄清您的问题。

如果它是您想要的,您可以使用php预生成对象(作为JSON)。

<?php
  $i=1;
  $out = "{";
  while ($i<91) {
    $out .= "\"t".$i."\"=".$i.",";
    $i++;
  }
  $out .="};";
  echo "var level_current_prices = ".$out;
?>

自从我使用php以来你已经有一段时间了,所以你可以做得更好:D。