Почему мой объект не добавляется программно к элементу select правильно в JavaScript?

<html lang = "en"><head>
    <meta http-equiv = "Content-Type" content = "text/html; charset=UTF-8">

    <meta http-equiv = "X-UA-Compatible" content = "IE=edge">
    <meta name = "viewport" content = "width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <meta name = "description" content = "">
    <meta name = "author" content = "">
    <link rel = "icon" href = "https://getbootstrap.com/docs/3.4/favicon.ico">
    <link rel = "canonical" href = "https://getbootstrap.com/docs/3.4/examples/jumbotron-narrow/">

    <title>Luna's Pizza Online Order Form</title>
    <!--MAIN CSS-->
    <link href = "css/style.css" rel = "stylesheet">

    <!-- Bootstrap core CSS -->
    <link href = "./index_files/bootstrap.min.css" rel = "stylesheet">

    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
    <link href = "./index_files/ie10-viewport-bug-workaround.css" rel = "stylesheet">

    <!-- Custom styles for this template -->
    <link href = "./index_files/jumbotron-narrow.css" rel = "stylesheet">
    <link rel = "stylesheet" href = "../css/style.css">

    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
    <!--[if lt IE 9]><script src = "../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
    <script src = "./index_files/ie-emulation-modes-warning.js.download"></script>

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
      <script src = "https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
      <script src = "https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
</head>

<body>

    <div class = "container">
        <div class = "header clearfix">
            <h3 class = "text-muted">Luna's Pizza</h3>
        </div>

        <span id = "initialSpan"><div class = "jumbotron">
                <h1>Jumbotron heading</h1>
                <p class = "lead">Cras justo odio, dapibus ac facilisis in, egestas eget quam. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>
                <p><a class = "btn btn-lg btn-success" href = "https://getbootstrap.com/docs/3.4/examples/jumbotron-narrow/#" role = "button">Sign up today</a></p>
            </div></span>

        <div class = "row marketing">
            <div class = "col-lg-12">
                <hr>
                <form id = "orderPizzaForm" action = "" method = "post" onSubmit = "'#'();">
                    <span id = "deliverySpan">
                       <h4>Delivery Location</h4>
                        <label>Name:</label>
                        <input type = "text" name = "name" id = "deliveryName"><span id = "deliveryNameError"></span><br>
                        <label>Address Type:</label>
                        <select id = "deliveryAddressType" name= "deliveryAddressType">
                            <option value = "selectAddress">--- Please Select ---</option>
                            <option value  = "house">House</option>
                            <option value  = "apartment">Apartment</option>
                            <option value  = "business">Business</option>
                            <option value = "campus">Campus</option>
                            <option value = "hotel">Hotel</option>
                            <option value = "dorm">Dorm</option>
                            <option value = "other">Other</option>
                        </select><span id = "deliveryAddressTypeError"></span><br>
                        <div id=deliveryOtherAddress> 
                            <label for = "nameInput">What type of Address?</label><input type = "text" id = "nameInput" /><br>
                        </div>
                        <label>Street Address:</label>
                        <input type = "text" name = "streetAddress" id = "deliveryStreetAddress"><span id = "deliveryStreetAddressError"></span><br>
                        <label>Optional Apartment Number:</label>
                        <input type = "text" name = "apartmentNumber"><br>
                        <label>Suite or Room Number:</label>
                        <input type = "text" name = "suiteRoomNumber"><br>
                        <label>City:</label>
                        <input type = "text" name = "city" id = "deliveryCity"><span id = "deliveryCityError"></span><br>
                        <label>State:</label>
                        <input type = "text" name = "state" id = "deliveryState"><span id = "deliveryStateError"></span><br>
                        <label>Zip Code:</label>
                        <input type = "text" name = "zipCode" id = "deliveryZip"><span id = "deliveryZipError"></span><br>
                        <label>Phone Number:</label>
                        <input type = "tel" name = "phonenumber" title = "Ex: 555-555-5555" id = "deliveryPhoneNumber"><span id = "deliveryPhoneNumberError"></span><br>
                        <label>Email:</label>
                        <input type = "email" name = "email" id = "deliveryEmail"><span id = "deliveryEmailError"></span><br>
                        <br>
                        <input type = "button" id = "verifyDeliveryAddress" value = "Submit">
                        <hr>
                    </span>
                    <span id = "doughSpan">
                        <h4>Build Your Order</h4>
                        <label>Dough Options:</label><br>
                        <span id = "doughOptionsSpan">
                            <input type = "radio" name = "doughOptions" value = "handTossed" id = "handTossed">Hand Tossed<br>
                            <input type = "radio" name = "doughOptions" value = "thinCrust" id = "thinCrust">Thin Crust<br>
                            <input type = "radio" name = "doughOptions" value = "nyStyle" id = "nYStyle">New York Style<br>
                            <input type = "radio" name = "doughOptions" value = "glutenFree" id = "glutenFree">Gluten Free
                        </span>
                        <hr>
                    </span>
                    <!--BEGIN SPAN FOR PIZZA SIZES-->
                    <span id = "pizzaSizePricesSpan">
                      <label>Choose your pizza size and price.</label><br>
                       <select id = "pizzaSizePrices" name= "pizzaSizePrices">
                            <!--<option value = "selectSize/Price">--- Please Select Size/Price---</option>-->
                        </select><span id = "pizzaSizePricesError"></span><br>
                        <hr>
                    </span>
                    
                    <!--END SPAN FOR PIZZA SIZES-->
                    
                    <span id = "toppingsSpan"> <!--style = "visibility: hidden"-->
                        <label>Cheese Options:</label>
                        <select name = "cheeseOptions">
                            <option>Light: no charge</option>
                            <option>Normal(default): no charge</option>
                            <option>Extra: +$2.99</option>
                            <option>Double: +$3.99</option>
                        </select>
                        <hr>
                        <label>Sauce Options:</label>
                        <select name = "sauceOptions">
                            <option>Regular Tomato: no charge</option>
                            <option>Hearty Tomato: +$.99</option>
                            <option>BBQ Sauce: +$1.99</option>
                        </select>
                        <hr>
                        <label>Toppings:</label><br>
                        <input type = "checkbox" name = "toppings" id = "pepperoni" value = "pepperoni"> Pepperoni<br>
                        <input type = "checkbox" name = "toppings" id = "sausage" value = "sausage"> Sausage<br>
                        <input type = "checkbox" name = "toppings" id = "ham" value = "ham"> Ham<br>
                        <input type = "checkbox" name = "toppings" id = "" value = "bacon"> Bacon<br>
                        <input type = "checkbox" name = "toppings" id = "salami" value = "salami"> Salami<br>
                        <input type = "checkbox" name = "toppings" id = "peppers" value = "peppers"> Peppers<br>
                        <input type = "checkbox" name = "toppings" id = "olives" value = "olives"> Olives<br>
                        <input type = "checkbox" name = "toppings" id = "jalapenos" value = "jalapenos"> Jalapenos<br>
                        <input type = "checkbox" name = "toppings" id = "mushrooms" value = "mushrooms"> Mushrooms<br>
                        <input type = "checkbox" name = "toppings" id = "pineapple" value = "pineapple"> Pineapple<br>
                        <input type = "checkbox" name = "toppings" id = "onion" value = "onion"> Onion<br>
                        <hr>
                        <input type = "button" id = "proceedToBilling" value = "Proceed to Billing">

                    </span>
                    <span id = "orderAndBillingSpan">
                        <h4>Billing Information</h4>
                        <input type = "checkbox" name = "sameAsDeliveryInfo" id = "sameAs" value = "sameAs">
                        <label>Same as Delivery Information</label><br><br>
                        <label>Name:</label>
                        <input type = "text" name = "name">
                        <hr>
                        <label>Address Type:</label>
                        <select name = "addresstype">
                            <option>House</option>
                            <option>Apartment</option>
                            <option>Business</option>
                            <option>Campus</option>
                            <option>Hotel</option>
                            <option>Dorm</option>
                            <option>Other</option>
                        </select>
                        <hr>
                        <label>Street Address:</label>
                        <input type = "text" name = "streetAddress">
                        <hr>
                        <label>Optional Apartment Number:</label>
                        <input type = "text" name = "apartmentNumber">
                        <hr>
                        <label>Suite or Room Number:</label>
                        <input type = "text" name = "suiteRoomNumber">
                        <hr>
                        <label>City:</label>
                        <input type = "text" name = "city">
                        <hr>
                        <label>State:</label>
                        <input type = "text" name = "state">
                        <hr>
                        <label>Zip Code:</label>
                        <input type = "text" name = "zipCode">
                        <hr>
                        <h4>Payment Information</h4><br>
                        <label>Credit Card Information:</label>
                        <input type = "text" name = "creditCardInfo"><br>
                        <hr>
                        <label>CVC Code:</label>
                        <input type = "text" name = "cvcCode"><br>
                        <hr>
                        <label>Expiration Date:</label>
                        <select name = "expirationDate">
                            <option>2019</option>
                            <option>2020</option>
                            <option>2021</option>
                            <option>2022</option>
                            <option>2023</option>
                        </select>
                        <br>
                        <button id = "submitOrder">Submit Order</button>
                    </span>
                </form>
            </div>
        </div>

        <footer class = "footer">
            <p>© 2019 Company, Inc.</p>
        </footer>

    </div> <!-- /container -->


    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
    <script src = "./index_files/ie10-viewport-bug-workaround.js.download"></script>
    <!--MAIN JS-->
    <script src = "script/script.js"></script>


</body></html>

Я пытаюсь добавить вложенные объекты, которые также вложены в массив, который все вложен в литерал объекта, в раскрывающийся список выбора. В зависимости от типа корочки для пиццы, которую хочет пользователь, поле выбора программно заполнит элемент выбора соответствующими доступными размерами и ценами на этот тип корочки. В моем сценарии я сначала очищаю элемент выбора, затем перебираю литерал объекта и добавляю его в поле выбора. Пока он заполняет поле выбора, я замечаю, что размеры и цены переносятся с одного типа корочки на другой, если пользователь хочет изменить тип корочки для своей пиццы. Например, когда пользователь нажимает на корочку без глютена, а затем переключается на корочку в нью-йоркском стиле, а затем снова на безглютеновую, размеры и цены для нью-йоркского стиля переносятся на безглютеновые варианты. Что происходит и как я могу это исправить?

var $ = function (id) {
    "use strict";
    return window.document.getElementById(id);

};
var phase;
var phases = {
    initialSpan: 0,
    deliveryAddress: 1,
    crustType: 2,
    doughType_Prices_Size: 3,
    crustToppings: 4,
    billingInfo: 5
    
};
//DISPLAYING ELEMENTS IN CORRECT PHASES
function updateDisplay() {
    "use strict";
    var initialSpan = $('initialSpan'),
        deliverySpan = $('deliverySpan'),
        doughSpan = $('doughSpan'),
        pizzaSizePricesSpan = $('pizzaSizePricesSpan'),
        toppingsSpan = $('toppingsSpan'),
        orderAndBillingSpan = $('orderAndBillingSpan');
    if (phase === phases.initialSpan) { 
    // INITIAL PHASE
        initialSpan.style.display = "block";
        deliverySpan.style.display = "none";
        doughSpan.style.display = "none";
        pizzaSizePricesSpan.style.display = "none";
        toppingsSpan.style.display = "none";
        orderAndBillingSpan.style.display = "none";
    } else if (phase === phases.deliveryAddress) { 
    // DELIVERY ADDRESS
        initialSpan.style.display = "none";
        deliverySpan.style.display = "block";
        doughSpan.style.display = "none";
        pizzaSizePricesSpan.style.display = "none";
        toppingsSpan.style.display = "none";
        orderAndBillingSpan.style.display = "none";

    } else if (phase === phases.crustType) { 
    //CRUST TYPE
        deliverySpan.style.display = "none";
        doughSpan.style.display = "block"; 
        pizzaSizePricesSpan.style.display = "none";
        toppingsSpan.style.display = "none";
        orderAndBillingSpan.style.display = "none";

    } else if (phase === phases.doughType_Prices_Size) {      
    //DOUGHTYPE AND SIZES/PRICES
        deliverySpan.style.display = "none";
        doughSpan.style.display = "block";
        pizzaSizePricesSpan.style.display = "block";
        toppingsSpan.style.display = "none";
        orderAndBillingSpan.style.display = "none";
        
    } else if (phase === phases.crustToppings) { 
    //CRUST AND TOPPINGS
        deliverySpan.style.display = "none";
        doughSpan.style.display = "block";
        pizzaSizePricesSpan.style.display = "block";
        toppingsSpan.style.display = "block";
        orderAndBillingSpan.style.display = "none";

    } else if (phase === phases.billingInfo) { 
    //BILLING INFO
        deliverySpan.style.display = "none";
        doughSpan.style.display = "none";
        pizzaSizePricesSpan.style.display = "none";
        toppingsSpan.style.display = "none";
        orderAndBillingSpan.style.display = "block";

    }
}
function nextPhase(currentPhase) {
    "use strict";
    phase = currentPhase + 1;
    updateDisplay();
    
}
function setPhase(newPhase) {
    "use strict";
    phase = newPhase;
    updateDisplay();
}
var pizzaSizePrices = {
    
    "handTossed": [
        { size: "Small", price: 9.99 },
        { size: "Medium", price: 12.99},
        { size: "large", price: 14.99}
    ],
    "thinCrust": [
        { size: "Medium", price: 11.99},
        { size: "large", price: 13.99}
    ],
    "nyStyle": [
        { size: "Medium", price: 16.99},
        { size: "Extra Large", price: 19.99}
    ],
    "glutenFree": [
        { size: "small", price: 10.99}
    ]
};

function verifyDoughOption() {
"use strict";
var doughType, s, selection = $('pizzaSizePrices'), sizePrice;
    if ($('handTossed').checked) {
        doughType = "handTossed";
        
    } else if ($('thinCrust').checked) {
        doughType = $('thinCrust').value;

    } else if ($('nYStyle').checked) {
        doughType = $('nYStyle').value;

    } else if ($('glutenFree').checked) {
        doughType = $('glutenFree').value;

    } else {
        doughType = "none";
        setPhase(phases.crustType);
        return;
    }
    sizePrice = pizzaSizePrices[doughType];
    
    //  Clear selection (select box)
    for (var i = 0; i < selection.options.length; i++) {
        // CLEAR
        selection.options[i] = null;
    }
    
    // Loop over sizePrice
    for (i = 0; i < sizePrice.length; i++) {
         // Build string
        s = sizePrice[i].size + " ($" + sizePrice[i].price + ")";
        var option = document.createElement('option');
        option.text = s;
        selection.add(option);    
    }
    // Add to selection
    nextPhase(phases.crustType);
}

function init() {
    "use strict";
    //SETS PHASE FOR INITIAL SPAN
    setPhase(phases.initialSpan);
    //EVENT FOR INITIAL PHASE
    $('initialSpan').addEventListener('click', proceedToOrder);
    //EVENT LISTENER FOR OTHER
    $('deliveryAddressType').addEventListener("click", otherAddressShowHide);
    //EVENT LISTENER FOR DELIVERY SUBMIT BUTTON
    $('verifyDeliveryAddress').addEventListener("click", verifyDeliveryAddress);
    $('doughOptionsSpan').addEventListener("click", verifyDoughOption);
    //EVENT LISTENER FOR DOUGH OPTIONS VALUE 
    $('pizzaSizePrices').addEventListener("click", verifyPizzaSizePrice);
    //EVENT LISTENER FOR PROCEED TO BILLING
    $('proceedToBilling').addEventListener("click", proceedToBilling);
    //SUBMITS PLACE ORDER
    $('orderPizzaForm').onsubmit = placeOrder;

}

window.addEventListener("load", init);
<span id = "doughOptionsSpan">
<input type = "radio" name = "doughOptions" value = "handTossed" id = "handTossed">Hand Tossed<br>
<input type = "radio" name = "doughOptions" value = "thinCrust" id = "thinCrust">Thin Crust<br>
<input type = "radio" name = "doughOptions" value = "nyStyle" id = "nYStyle">New York Style<br>
<input type = "radio" name = "doughOptions" value = "glutenFree" id = "glutenFree">Gluten Free
</span>
<span id = "pizzaSizePricesSpan">
<label>Choose your pizza size and price.</label><br>
<select id = "pizzaSizePrices" name= "pizzaSizePrices">
</select><span id = "pizzaSizePricesError">
</span><br>
</span>

Добавьте свой полный HTML

Vineesh 15.05.2019 05:36

полный HTML добавляется над исходным сообщением.

Aj96 15.05.2019 05:42
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
46
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать приведенный ниже код, чтобы очистить параметры в поле выбора. Это решит проблему.

  // Clear selection (select box)
  selection.options.length = 0;

  /* Comment this
  for (var i = 0; i < selection.options.length; i++) {
    // CLEAR
    selection.options[i] = null;
  }   
  */

var $ = function(id) {
  "use strict";
  return window.document.getElementById(id);

};
var phase;
var phases = {
  initialSpan: 0,
  deliveryAddress: 1,
  crustType: 2,
  doughType_Prices_Size: 3,
  crustToppings: 4,
  billingInfo: 5

};
//DISPLAYING ELEMENTS IN CORRECT PHASES
function updateDisplay() {
  "use strict";
  var initialSpan = $('initialSpan'),
    deliverySpan = $('deliverySpan'),
    doughSpan = $('doughSpan'),
    pizzaSizePricesSpan = $('pizzaSizePricesSpan'),
    toppingsSpan = $('toppingsSpan'),
    orderAndBillingSpan = $('orderAndBillingSpan');
  //console.info(initialSpan, //document.getElementById('initialSpan'));
  if (phase === phases.initialSpan) {
    // INITIAL PHASE
    initialSpan.style.display = "block";
    deliverySpan.style.display = "none";
    //doughSpan.style.display = "none";
    //pizzaSizePricesSpan.style.display = "none";
    //toppingsSpan.style.display = "none";
    //orderAndBillingSpan.style.display = "none";
  } else if (phase === phases.deliveryAddress) {
    // DELIVERY ADDRESS
    initialSpan.style.display = "none";
    deliverySpan.style.display = "block";
    doughSpan.style.display = "none";
    pizzaSizePricesSpan.style.display = "none";
    toppingsSpan.style.display = "none";
    orderAndBillingSpan.style.display = "none";

  } else if (phase === phases.crustType) {
    //CRUST TYPE
    deliverySpan.style.display = "none";
    doughSpan.style.display = "block";
    //pizzaSizePricesSpan.style.display = "none";
    //toppingsSpan.style.display = "none";
    //orderAndBillingSpan.style.display = "none";

  } else if (phase === phases.doughType_Prices_Size) {
    //DOUGHTYPE AND SIZES/PRICES
    deliverySpan.style.display = "none";
    doughSpan.style.display = "block";
    pizzaSizePricesSpan.style.display = "block";
    toppingsSpan.style.display = "none";
    orderAndBillingSpan.style.display = "none";

  } else if (phase === phases.crustToppings) {
    //CRUST AND TOPPINGS
    deliverySpan.style.display = "none";
    doughSpan.style.display = "block";
    pizzaSizePricesSpan.style.display = "block";
    toppingsSpan.style.display = "block";
    orderAndBillingSpan.style.display = "none";

  } else if (phase === phases.billingInfo) {
    //BILLING INFO
    deliverySpan.style.display = "none";
    doughSpan.style.display = "none";
    pizzaSizePricesSpan.style.display = "none";
    toppingsSpan.style.display = "none";
    orderAndBillingSpan.style.display = "block";

  }
}

function nextPhase(currentPhase) {
  "use strict";
  phase = currentPhase + 1;
  updateDisplay();

}

function setPhase(newPhase) {
  "use strict";
  phase = newPhase;
  updateDisplay();
}
var pizzaSizePrices = {

  "handTossed": [{
      size: "Small",
      price: 9.99
    },
    {
      size: "Medium",
      price: 12.99
    },
    {
      size: "large",
      price: 14.99
    }
  ],
  "thinCrust": [{
      size: "Medium",
      price: 11.99
    },
    {
      size: "large",
      price: 13.99
    }
  ],
  "nyStyle": [{
      size: "Medium",
      price: 16.99
    },
    {
      size: "Extra Large",
      price: 19.99
    }
  ],
  "glutenFree": [{
    size: "small",
    price: 10.99
  }]
};

function verifyDoughOption() {
  "use strict";
  var doughType, s, selection = $('pizzaSizePrices'),
    sizePrice;
  if ($('handTossed').checked) {
    doughType = "handTossed";

  } else if ($('thinCrust').checked) {
    doughType = $('thinCrust').value;

  } else if ($('nYStyle').checked) {
    doughType = $('nYStyle').value;

  } else if ($('glutenFree').checked) {
    doughType = $('glutenFree').value;

  } else {
    doughType = "none";
    setPhase(phases.crustType);
    return;
  }
  sizePrice = pizzaSizePrices[doughType];
   
  //  Clear selection (select box)
  selection.options.length = 0;
  
  /*
  for (var i = 0; i < selection.options.length; i++) {
    // CLEAR
    //selection.options[i] = null;
    selection.remove(i);
  }
   
  */

  
  // Loop over sizePrice
  for (let i = 0; i < sizePrice.length; i++) {
    // Build string
    s = sizePrice[i].size + " ($" + sizePrice[i].price + ")";
    var option = document.createElement('option');
    option.text = s;     
    selection.add(option);
  }
  // Add to selection
  nextPhase(phases.crustType);
  
}

function init() {
  "use strict";
  //SETS PHASE FOR INITIAL SPAN
  setPhase(phases.initialSpan);
  //EVENT FOR INITIAL PHASE
  //$('initialSpan').addEventListener('click', proceedToOrder);
  //EVENT LISTENER FOR OTHER
  //$('deliveryAddressType').addEventListener("click", otherAddressShowHide);
  //EVENT LISTENER FOR DELIVERY SUBMIT BUTTON
  //$('verifyDeliveryAddress').addEventListener("click", verifyDeliveryAddress);
  $('doughOptionsSpan').addEventListener("click", verifyDoughOption);
  //EVENT LISTENER FOR DOUGH OPTIONS VALUE 
  //$('pizzaSizePrices').addEventListener("click", verifyPizzaSizePrice);
  //EVENT LISTENER FOR PROCEED TO BILLING
  $('proceedToBilling').addEventListener("click", proceedToBilling);
  //SUBMITS PLACE ORDER
  //$('orderPizzaForm').onsubmit = placeOrder;

}
document.addEventListener("DOMContentLoaded", init, false);
//window.document.body.addEventListener("load", init);
<body>

    <div class = "container">
        <div class = "header clearfix">
            <h3 class = "text-muted">Luna's Pizza</h3>
        </div>

        <span id = "initialSpan"><div class = "jumbotron">
                <h1>Jumbotron heading</h1>
                <p class = "lead">Cras justo odio, dapibus ac facilisis in, egestas eget quam. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>
                <p><a class = "btn btn-lg btn-success" href = "https://getbootstrap.com/docs/3.4/examples/jumbotron-narrow/#" role = "button">Sign up today</a></p>
            </div></span>

        <div class = "row marketing">
            <div class = "col-lg-12">
                <hr>
                <form id = "orderPizzaForm" action = "" method = "post" onSubmit = "'#'();">
                    <span id = "deliverySpan">
                       <h4>Delivery Location</h4>
                        <label>Name:</label>
                        <input type = "text" name = "name" id = "deliveryName"><span id = "deliveryNameError"></span><br>
                        <label>Address Type:</label>
                        <select id = "deliveryAddressType" name= "deliveryAddressType">
                            <option value = "selectAddress">--- Please Select ---</option>
                            <option value  = "house">House</option>
                            <option value  = "apartment">Apartment</option>
                            <option value  = "business">Business</option>
                            <option value = "campus">Campus</option>
                            <option value = "hotel">Hotel</option>
                            <option value = "dorm">Dorm</option>
                            <option value = "other">Other</option>
                        </select><span id = "deliveryAddressTypeError"></span><br>
                        <div id=deliveryOtherAddress> 
                            <label for = "nameInput">What type of Address?</label><input type = "text" id = "nameInput" /><br>
                        </div>
                        <label>Street Address:</label>
                        <input type = "text" name = "streetAddress" id = "deliveryStreetAddress"><span id = "deliveryStreetAddressError"></span><br>
                        <label>Optional Apartment Number:</label>
                        <input type = "text" name = "apartmentNumber"><br>
                        <label>Suite or Room Number:</label>
                        <input type = "text" name = "suiteRoomNumber"><br>
                        <label>City:</label>
                        <input type = "text" name = "city" id = "deliveryCity"><span id = "deliveryCityError"></span><br>
                        <label>State:</label>
                        <input type = "text" name = "state" id = "deliveryState"><span id = "deliveryStateError"></span><br>
                        <label>Zip Code:</label>
                        <input type = "text" name = "zipCode" id = "deliveryZip"><span id = "deliveryZipError"></span><br>
                        <label>Phone Number:</label>
                        <input type = "tel" name = "phonenumber" title = "Ex: 555-555-5555" id = "deliveryPhoneNumber"><span id = "deliveryPhoneNumberError"></span><br>
                        <label>Email:</label>
                        <input type = "email" name = "email" id = "deliveryEmail"><span id = "deliveryEmailError"></span><br>
                        <br>
                        <input type = "button" id = "verifyDeliveryAddress" value = "Submit">
                        <hr>
                    </span>
                    <span id = "doughSpan">
                        <h4>Build Your Order</h4>
                        <label>Dough Options:</label><br>
                        <span id = "doughOptionsSpan">
                            <input type = "radio" name = "doughOptions" value = "handTossed" id = "handTossed">Hand Tossed<br>
                            <input type = "radio" name = "doughOptions" value = "thinCrust" id = "thinCrust">Thin Crust<br>
                            <input type = "radio" name = "doughOptions" value = "nyStyle" id = "nYStyle">New York Style<br>
                            <input type = "radio" name = "doughOptions" value = "glutenFree" id = "glutenFree">Gluten Free
                        </span>
                        <hr>
                    </span>
                    <!--BEGIN SPAN FOR PIZZA SIZES-->
                    <span id = "pizzaSizePricesSpan">
                      <label>Choose your pizza size and price.</label><br>
                       <select id = "pizzaSizePrices" name= "pizzaSizePrices">
                            <!--<option value = "selectSize/Price">--- Please Select Size/Price---</option>-->
                        </select><span id = "pizzaSizePricesError"></span><br>
                        <hr>
                    </span>
                    
                    <!--END SPAN FOR PIZZA SIZES-->
                    
                    <span id = "toppingsSpan"> <!--style = "visibility: hidden"-->
                        <label>Cheese Options:</label>
                        <select name = "cheeseOptions">
                            <option>Light: no charge</option>
                            <option>Normal(default): no charge</option>
                            <option>Extra: +$2.99</option>
                            <option>Double: +$3.99</option>
                        </select>
                        <hr>
                        <label>Sauce Options:</label>
                        <select name = "sauceOptions">
                            <option>Regular Tomato: no charge</option>
                            <option>Hearty Tomato: +$.99</option>
                            <option>BBQ Sauce: +$1.99</option>
                        </select>
                        <hr>
                        <label>Toppings:</label><br>
                        <input type = "checkbox" name = "toppings" id = "pepperoni" value = "pepperoni"> Pepperoni<br>
                        <input type = "checkbox" name = "toppings" id = "sausage" value = "sausage"> Sausage<br>
                        <input type = "checkbox" name = "toppings" id = "ham" value = "ham"> Ham<br>
                        <input type = "checkbox" name = "toppings" id = "" value = "bacon"> Bacon<br>
                        <input type = "checkbox" name = "toppings" id = "salami" value = "salami"> Salami<br>
                        <input type = "checkbox" name = "toppings" id = "peppers" value = "peppers"> Peppers<br>
                        <input type = "checkbox" name = "toppings" id = "olives" value = "olives"> Olives<br>
                        <input type = "checkbox" name = "toppings" id = "jalapenos" value = "jalapenos"> Jalapenos<br>
                        <input type = "checkbox" name = "toppings" id = "mushrooms" value = "mushrooms"> Mushrooms<br>
                        <input type = "checkbox" name = "toppings" id = "pineapple" value = "pineapple"> Pineapple<br>
                        <input type = "checkbox" name = "toppings" id = "onion" value = "onion"> Onion<br>
                        <hr>
                        <input type = "button" id = "proceedToBilling" value = "Proceed to Billing">

                    </span>
                    <span id = "orderAndBillingSpan">
                        <h4>Billing Information</h4>
                        <input type = "checkbox" name = "sameAsDeliveryInfo" id = "sameAs" value = "sameAs">
                        <label>Same as Delivery Information</label><br><br>
                        <label>Name:</label>
                        <input type = "text" name = "name">
                        <hr>
                        <label>Address Type:</label>
                        <select name = "addresstype">
                            <option>House</option>
                            <option>Apartment</option>
                            <option>Business</option>
                            <option>Campus</option>
                            <option>Hotel</option>
                            <option>Dorm</option>
                            <option>Other</option>
                        </select>
                        <hr>
                        <label>Street Address:</label>
                        <input type = "text" name = "streetAddress">
                        <hr>
                        <label>Optional Apartment Number:</label>
                        <input type = "text" name = "apartmentNumber">
                        <hr>
                        <label>Suite or Room Number:</label>
                        <input type = "text" name = "suiteRoomNumber">
                        <hr>
                        <label>City:</label>
                        <input type = "text" name = "city">
                        <hr>
                        <label>State:</label>
                        <input type = "text" name = "state">
                        <hr>
                        <label>Zip Code:</label>
                        <input type = "text" name = "zipCode">
                        <hr>
                        <h4>Payment Information</h4><br>
                        <label>Credit Card Information:</label>
                        <input type = "text" name = "creditCardInfo"><br>
                        <hr>
                        <label>CVC Code:</label>
                        <input type = "text" name = "cvcCode"><br>
                        <hr>
                        <label>Expiration Date:</label>
                        <select name = "expirationDate">
                            <option>2019</option>
                            <option>2020</option>
                            <option>2021</option>
                            <option>2022</option>
                            <option>2023</option>
                        </select>
                        <br>
                        <button id = "submitOrder">Submit Order</button>
                    </span>
                </form>
            </div>
        </div>

        <footer class = "footer">
            <p>© 2019 Company, Inc.</p>
        </footer>

    </div> <!-- /container -->


    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
  


</body>

Работал как шарм!

Aj96 15.05.2019 06:17

Другие вопросы по теме