如果否则在Javascript中无法正常工作

时间:2015-11-03 14:22:12

标签: javascript jquery

我在Javascript中使用if else进行计算。

下面是HTML:

 <b>Select Number of Rooms:</b>
            <select name="rooms" id="room" required>
            <option value="8">Rooms</option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            </select><br><br>
            <div id="paxx">

            <div id="first">
            <b>Room 1 - Adult:</b>
            <select name="Adults" id="Adult" required>

            <option value="0">Adult</option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>

            </select><br><br>
            </div>
            <div id="firsts">
            <b>Room 1 - Child:</b>
            <select name="child" id="child">
            <option value="0">Child</option>
            <option value="1">1</option>
            <option value="2">2</option>
            </select><br><br>
            </div>
            <div id="Adt1">
            <b>Room 2 - Adult:</b>
            <select name="Adult1" id="Adult1">
            <option value="0">Adult</option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            </select><br><br>
            </div>
            <div id="chd1">
            <b>Room 2 - Child:</b>
            <select name="child1" id="child1">
            <option value="0">Child</option>
            <option value="1">1</option>
            <option value="2">2</option>
            </select><br><br>
            </div>
            <div id="Adt2">
            <b>Room 3 - Adult:</b>
            <select name="Adult2" id="Adult2">
            <option value="0">Adult</option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            </select><br><br>
            </div>
            <div id="chd2">
            <b>Room 3 - Child:</b>
            <select name="child2" id="child2">
            <option value="0">Child</option>
            <option value="1">1</option>
            <option value="2">2</option>
            </select><br><br>
            </div>
            <div id="Adt3">
            <b>Room 4 - Adult:</b>
            <select name="Adult3" id="Adult3">
            <option value="0">Adult</option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            </select><br><br>
            </div>
            <div id="chd3">
            <b>Room 4 - Child:</b>
            <select name="child3" id="child3">
            <option value="0">Child</option>
            <option value="1">1</option>
            <option value="2">2</option>
            </select><br><br>
            </div>
            </div>

Javascript部分如下:

    <script>
    $("#paxx").change(function(){
    <?php $single =  $row['single']; ?>
    var single = "<?php  echo $single; ?>";
    <?php $double =  $row['doubl']; ?>
    var doubl = "<?php  echo $double; ?>";
    var price = "";

    var $sumDisplay = $('#total');
    var t1 = parseInt($("#Adult").val());  
    var t2 = parseInt($("#Adult1").val()); 
    var t3 = parseInt($("#Adult2").val()); 
    var t4 = parseInt($("#Adult3").val());
    var t5 = parseInt($("#child").val());
    var t6 = parseInt($("#child1").val());
    var t7 = parseInt($("#child2").val());
    var t8 = parseInt($("#child3").val());



    {

    if(parseInt($("#Adult").val()) == 1 || parseInt($("#Adult1").val()) == 1 || parseInt($("#Adult3").val()) == 1 || parseInt($("#Adult2").val()) == 1)
    {
        var total2 = t1 + t2 + t3 + t4;
        var price =  total2 * single;

    }



    if(parseInt($("#Adult").val()) == 2 || parseInt($("#Adult1").val()) == 2 || parseInt($("#Adult3").val()) == 2 || parseInt($("#Adult2").val()) == 2)
    {
        var total12 = t1 + t2 + t3 + t4;
        var price =  total12 * doubl;

    }



    if(parseInt($("#Adult").val()) == 3 || parseInt($("#Adult2").val()) == 3 || parseInt($("#Adult3").val()) == 3 || parseInt($("#Adult1").val()) == 3)
    {
        var total21 = t1 + t2 + t3 + t4;
        var price =  total21 * doubl;
    }



    if(parseInt($("#Adult").val()) == 1 && parseInt($("#child").val()) == 1 )
    {   
        var total2 = t1 + t5 ;
        var price =  total2 * doubl;

    }

}

    $sumDisplay.text(price);



});
            </script>

现在发行是当我在第一个房间选择1个成人和1个孩子时,它给了我正确的价格。当我添加另一个房间并添加1个人时,它给我的价格

3 * doubl;

但是,如果你看看我的if条件,它应该像这样工作

2 * doubl + 1 * single;

它在最后一个if语句中添加了另一个人,并且在第二个房间中添加1个人时不首先查看if语句。

请检查并告知我一个解决方案并指出问题,如果有的话。

1 个答案:

答案 0 :(得分:0)

我很乐意帮助,但坦率地说,我无法弄清楚你是如何计算价格的。您只使用其中一个子字段来计算第四种情况的价格,只有当您在第一个房间有一个成人和一个儿童时才会这样。如果您可以解释您尝试使用此代码进行抽象的定价结构,我可能最好能够告诉您哪里出错了。

举一个例子,你的第三个案例说明,如果在任何一个房间里有三个成年人,那么总价格应该等于所有四个房间中所有成年人的总和乘以两个。如果我没有弄错的话,如果你在一个房间里有一个,两个,三个,三个成年人,那么总价格将等于你为12个成年人支付的费用(12 X 2),无论孩子的数量如何。