JavaScript if语句有问题

时间:2015-03-04 21:54:51

标签: javascript html if-statement

我的javascript假设是为价格变量增加值然后返回价格,我的麻烦是我使用的是选择选项,当我有多个价格时,只会使用最后一个if语句的id,这是我的HTML;

<form>
    <select>
    <option name ="Bristol "value="40.0" id ="BN1">Bristol - Newcastle</option>
    <option name ="London "value="35.0" id ="BL1">Bristol - London</option>
    </select>
    <button type="button" onclick="BookingFare(); return false;">Submit</button><br>
    </form>
    <label id='priceBox'></label>

这是我的Javascript

function BookingFare() {
        var price = 0;
        //var ofAdults = getElementById('adults').value;
        //var ofChildren = getElementById('children').value;
        var BN1 = document.getElementById('BN1').value;
        var BL1 = document.getElementById('BL1').value;

        if (BL1) {
         var price = BL1;
        }
        if (BN1) {
         var price = BN1; 
        }
        document.getElementById('priceBox').innerHTML = price;
        }

所以基本上该程序将返回BN1的价格,即使我选择布里斯托尔 - 伦敦。 任何建议表示赞赏。

3 个答案:

答案 0 :(得分:3)

结果很有意义。 ifs中的检查在两种情况下都是正确的(可能是因为BL1,BN1都存在)。

您需要在代码中执行的操作是检索所选索引,然后使用它。

为您的下拉列表指定一个ID:

<select id="dropdownList">
....

然后在代码中使用它来检索所选值:

var dropdownList = document.getElementById("dropdownList");
var price = dropdownList.options[dropdownList.selectedIndex].value;
//rest of code

查看类似问题here。 您还可以找到相关教程here

答案 1 :(得分:0)

1st:您正在多次定义变量 price 。 第二:您的代码检查'值'和原因,它总是有一个值。 我想,你真正想要检查的是,是否选择了一个选项,然后使用它的值。

function BookingFare() {
  var price = 0;
  var BN1 = document.getElementById('BN1');
  var BL1 = document.getElementById('BL1');

  if (BL1.selected) {
    price = BL1.value;
  }
  if (BN1.selected) {
    price = BN1.value;
  }
  document.getElementById('priceBox').innerHTML = price;
}
<form>
  <select>
    <option name="Bristol " value="40.0" id="BN1">Bristol - Newcastle</option>
    <option name="London " value="35.0" id="BL1">Bristol - London</option>
  </select>
  <button type="button" onclick="BookingFare(); return false;">Submit</button>
  <br>
  <label id='priceBox'></label>
</form>

答案 2 :(得分:0)

我认为这就是你要找的东西。

&#13;
&#13;
<script>
    function BookingFare() {
        var price = 0;
        //var ofAdults = getElementById('adults').value;
        //var ofChildren = getElementById('children').value;
        var bristol = document.getElementById('bristol').value;
        console.log(bristol);
        if (bristol == 35.0) {
         var price = bristol;
        }
        if (bristol == 40.0) {
         var price = bristol; 
        }
        document.getElementById('priceBox').innerHTML = price;
}
</script>
<form>
    <select id="bristol">
    <option name ="Bristol "value="40.0" id ="BN1">Bristol - Newcastle</option>
    <option name ="London "value="35.0" id ="BL1">Bristol - London</option>
    </select>
    <button type="button" onclick="BookingFare(); return false;">Submit</button>
</form>
<label id='priceBox'></label>
   
&#13;
&#13;
&#13;