如何让按钮正常工作

时间:2014-11-22 13:25:05

标签: javascript

我试图让按钮跟踪出售的票数,并在达到一定数量时停止循环。到目前为止,我的按钮根本不起作用(它们显示但是当你点击它们时没有任何反应)我不知道为什么(第一次尝试使用按钮所以我可能忘记了一些基本的东西)。有一种更简单的方法吗?

        <div>Be aware that the maxium amount of ticket that can be purchased in one transaction is 10!</div>
    <div>Please press the button with the type of ticket you wish to purchase  to start ordering your tickets now.</div>
    <button onclick="Calculate(0);">Toddler Ticket</button>
    <button onclick="Calculate(1);">Junior Ticket</button>
    <button onclick="Calculate(2);">Adult Ticket</button>
    <div id='msg'></div>

</head>

<body>
    <script type="text/javascript">
        // Program name: Ticket Booth
        // Purpose: To do a transaction
        // Author: Ephraim Vickers
        // Date last modified: Today

        // Variables
            var MAX_SEAT_COUNT = 10             //Named constant
            var amountTicket                    //Amount of tickets bought
            var grossProfit
                    //Ticket prices
            var adulTicket = 0           
            var junTicket = 0
            var todTicket = 0
            var totalSales = 0                  // adulTicket + junTicket 
                    //Seats by class
            var adulNum = 0                     // number of tickets bought
            var junNum = 0
            var todNum = 0
            var extraNum = 0                    //Ticket bought over maximum

        function parseFloat(amountTicket) {

            if (amountTicket >= MAX_SEAT_COUNT) {
                extraNum = amountTicket - MAX_SEAT_COUNT;
                document.getElementById('msg').innerHTML = "Tickets have now sold out thank you for purchasing."  // important to stop after limit
                 //end loop and display all data here like shown below remember to line up columns
                 //Ticket sale Report  <current date>
  // SEAT CAPACITY   EXTRAS            TOTAL SOLD
  // MAX_SEAT_COUNT  extraNum          amountTicket

  //  TODDLERS    JUNIORS               ADULTS
  //  todNum      junNum                  adulNum 
  //Gross Profit for today was grossProfit

              }else if    (amountTicket > 10) {
                 document.getElementById('msg').innerHTML = "The maximum number of tickets that can be done in one transaction is 10"
              }else {
                   amountTicket = prompt("Valued customer, please enter the number of tickets you would like to purchase.");
            parseFloat(amountTicket);
              }
              return;
              }
    function Calculate() {
        //set zeroes for all values
        adulTicket = 0
        junTicket = 0
        todTicket = 0
        amountTicket = 0
        totalSales = 0
        adulNum = 0
        junNum = 0
        todNum = 0
        extraNum = 0
        grossProfit = 0
       //get user input
        switch(id){
        case 0:
        todNum
        break;
        case 1:
       junNum
        break;
        case 2:
       adulnum
        break;
        }
       //get user input
            amountTicket = prompt("Valued customer, please enter the number of tickets you would like to purchase.");
            parseFloat(amountTicket);
        grossProfit =  (adulTicket * adultNum) + (junTicket * junNum)

            amountTicket = prompt("Valued customer, please enter the number of tickets you would like to purchase.");
            parseFloat(amountTicket);
        grossProfit =  (adulTicket * adultNum) + (junTicket * junNum)

    }

    </script>

2 个答案:

答案 0 :(得分:0)

好的,我认为现在最好的想法是完全重写代码的这一部分,为什么?

  • 每一段可见的html都必须放在body标签内。
  • 从仅针对一个特定类测试代码开始,多个类可能会令人困惑,并且当代码适用于一个类时,最终可以添加这些类。
  • 构建您的代码(动态),以便它适用于您的所有课程,这将使您的生活更加轻松。

那么你在这段代码中做错了什么?

  • 您在此计算功能中传递参数,其中未定义任何参数。与您的切换功能相同,何时定义id
  • 我们没有看到你记录。您点击其中一个按钮时没有任何反应,但您是否尝试过一些日志记录?可能有一些变化的变量。尝试使用console.log()来学习/查看/探索/检查您的代码。
祝你好运

答案 1 :(得分:0)

以下代码有效,但我没有时间对其进行格式化。

1当您使用按钮调用某个功能时,您不需要分号。

2如果你的函数在调用时有一个参数,比如Calculate(0),你需要在函数中声明你的参数。

function Calculate(ticket){

}

3然后,必须在交换机中使用该参数。

switch(ticket){

}

除此之外,如果你需要在别处工作,变量应该在函数之外声明。

观察你的if语句,这个语句对于相同的条件有两个结果,并使我的浏览器崩溃。

请以此为指导并整理您的代码。格式化有助于调试。

<body>
    <script type="text/javascript">
        // Program name: Ticket Booth
        // Purpose: To do a transaction
        // Author: Ephraim Vickers
        // Date last modified: Today

        // Variables
            var MAX_SEAT_COUNT = 10             //Named constant
            var amountTicket = 0                   //Amount of tickets bought
            var grossProfit
                    //Ticket prices
            var adulTicket = 0           
            var junTicket = 0
            var todTicket = 0
            var totalSales = 0                  // adulTicket + junTicket 
                    //Seats by class
            var adulNum = 0                     // number of tickets bought
            var junNum = 0
            var todNum = 0
            var extraNum = 0                    //Ticket bought over maximum

        function parseFloat(amountTicket) {

            if (amountTicket >= MAX_SEAT_COUNT) {
                extraNum = amountTicket - MAX_SEAT_COUNT;
                document.getElementById('msg').innerHTML = "Tickets have now sold out thank you for purchasing."  // important to stop after limit
                 //end loop and display all data here like shown below remember to line up columns
                 //Ticket sale Report  <current date>
  // SEAT CAPACITY   EXTRAS            TOTAL SOLD
  // MAX_SEAT_COUNT  extraNum          amountTicket

  //  TODDLERS    JUNIORS               ADULTS
  //  todNum      junNum                  adulNum 
  //Gross Profit for today was grossProfit

              }else if    (amountTicket < 10) {
                 document.getElementById('msg').innerHTML = "The maximum number of tickets that can be done in one transaction is 10"
              }else {
                   amountTicket = prompt("Valued customer, please enter the number of tickets you would like to purchase.");
            parseFloat(amountTicket);
              }
              return;
              }
    function Calculate(ticket) {
        //set zeroes for all values
        adulTicket = 0
        junTicket = 0
        todTicket = 0
        amountTicket = 0
        totalSales = 0
        adulNum = 0
        junNum = 0
        todNum = 0
        extraNum = 0
        grossProfit = 0
       //get user input
        switch(ticket){
        case 0:
        todNum
        break;
        case 1:
       junNum
        break;
        case 2:
       adulnum
        break;
        }
       //get user input
            amountTicket = prompt("Valued customer, please enter the number of tickets you would like to purchase.");
            parseFloat(amountTicket);
        grossProfit =  (adulTicket * adultNum) + (junTicket * junNum)

    return amountTicket;
    }

    </script>
相关问题