繁体   English   中英

如何使按钮正常工作

[英]How to get the buttons to work correctly

我正在尝试获取按钮以跟踪售出的门票数量,并在达到一定数量时停止循环。 到目前为止,我的按钮根本不起作用(它们显示出来,但是当您单击它们时什么也没有发生),我也不知道为什么(第一次尝试使用按钮,所以我可能会忘记一些基本的东西)。 有没有一种更简单的方法?

        <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>

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

  • 每段可见的html必须放置在body标签内。
  • 从仅针对一个特定类测试代码开始,多个类可能会造成混淆,您可以最终在代码针对一个类工作时添加这些类。
  • 构建您的代码(动态),使其适用于所有类,这将使您的生活更加轻松。

那么这段代码在做什么错呢?

  • 您正在此计算函数中传递参数,其中未定义任何参数。 与您的切换功能相同,何时定义id
  • 我们看不到您正在记录。 您是说单击其中一个按钮时没有任何反应,但是您是否已经尝试过进行一些记录? 可能有一些var正在更改。 尝试使用console.log()来学习/查看/浏览/检查..您的代码。

祝好运

下面的代码有效,但是我没有时间格式化它。

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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM