javascript - 有些方法有效,但不是全部

标签 javascript html

我是 Js 的新手,我在编写代码时遇到了问题。问题是,当我将不同的方法相乘时,程序无法运行。然而,有些方法是有效的,即使它们有点相同。另一个问题是我必须先更改第一个选择,然后再更改另一个以获得我需要的总数。无论顺序如何,只要我从下拉框中选择任何选择,我都希望得到一个总计。我知道我在这里预见到一个错误或者根本无法理解。请随时指出我的错误并帮助我改进我的代码,因为我知道它比它应该的更复杂。感谢您的帮助。

HTML

    <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="js/scriptt.js "></script>
  </head>
  <body onload="hideTotal()">
    <form method="POST" class="device"/>
      <center class="all" >
        <div class= "data">
          <label class="req">Select The Device</label>
          <select  class="mydevice" id= "selectDevice" onChange="calculateTotal()">
            <option> None </option>
            <option  value="100" id='lg'> LG X CHARGE </option>
            <option  value="129"> ZTE MAX XL </option>
            <option  value="123"> LG DYNASTY </option>
            <option  value="400"> LG TRIBUTE </option>
          </select>

          <label for="For" class="req"> For </label>
          <select class="mydevice" id="port" onChange="calculateTotal()">
            <option id= 'none' value='none'> None </option>
            <option  id='port' value="129" >Port-In</option>
            <option class="upgrade">Upgrade</option>
            <option class="newAct">New Activation</option>

          </select>

        <label for="Plan" class="req">Plan</label>
          <select class="plan" id='plan' onChange="calculatedToral()">
            <option>None</option>
            <option value="35" >$35 plan</option>
            <option value="50">$50 plan</option>
            <option value="60">$60 plan</option>
          </select>

          <div class="access" >
            <label for="phoneInsurance"> Phone Insurance </label>
            <select class="myinsurance" id='insurance'  onChange="calculatedToral()">
              <option>None</option>
              <option value="7">Yes</option>
            </select>

          <label for="phoneCase"> Phone Case </label>
          <select class="mycases" id='case' onChange="calculatedToral()">
            <option>None</option>
            <option value="25">Regular</option>
            <option value="35">Wallet</option>
          </select>

          <label for="screenProtector"> Screen Protector </label>
          <select class="myscreen" id='screen' onChange="calculatedToral()">
            <option value="15">Yes</option>
            <option>No</option>
          </select>

        <center>
          <div id="total"></div>

Js

var device_prices = new Array();
device_prices["100"]=100;
device_prices["129"]=129;
device_prices["123"]=123;
device_prices["400"]=400;

var port_prices = new Array();
port_prices["129"]=0.097;

var plan_prices = new Array();
plan_prices["35"]=35;
plan_prices["50"]=50;
plan_prices["60"]=60;

var insurance_prices = new Array();
inusrance_prices["7"]=7;

var phone_case = new Array();
phone_case["25"] = 25;
phone_case["30"] = 30;

var screen_protector = new Array();
screen_protector["15"] = 15;

function getDevicePrice() {
    var deviceSelect = document.getElementById('selectDevice');
    //alert(device_prices[deviceSelect.value]);
    return device_prices[deviceSelect.value];
}

function getPortPrice() {
    var portSelect = document.getElementById('port');
    return port_prices[portSelect.value];
}

function getPlanPrice() {
    var planSelected = document.getElementById('plan');
    return plan_prices[planSelected.value];
}

function getInsurancePrice() {
    var insurancee = document.getElementById('insurance');
    return insurance_prices[insurancee.value];
}
function getCasePrice() {
    var caseSelect = document.getElementById('case');
    return phone_case[caseSelect.value];
}
function getScreenPrice() {
    var screenSelect = document.getElementById('screen');
    return screen_protector[screenSelect.value];
}

function calculateTotal() {
        var total = getDevicePrice()*getPlanPrice()*getPortPrice();
        total = total.toFixed(2);
        var totalEl = document.getElementById('total');

        document.getElementById('total').innerHTML = "Your Total is: $" +        total;

        totalEl.style.display = 'block';

}

function hideTotal() {
    var totalEl = document.getElementById('total');
    totalEl.style.display = 'none';
}

最佳答案

拼写
var insurance_prices = new Array(); inusrance_prices["7"]=7;

函数或方法未定义 计算托尔

var device_prices = new Array();
device_prices["100"]=100;
device_prices["129"]=129;
device_prices["123"]=123;
device_prices["400"]=400;

var port_prices = new Array();
port_prices["129"]=0.097;

var plan_prices = new Array();
plan_prices["35"]=35;
plan_prices["50"]=50;
plan_prices["60"]=60;

var insurance_prices = new Array();
insurance_prices["7"]=7;

var phone_case = new Array();
phone_case["25"] = 25;
phone_case["30"] = 30;

var screen_protector = new Array();
screen_protector["15"] = 15;

function getDevicePrice() {
    var deviceSelect = document.getElementById('selectDevice');
    //alert(device_prices[deviceSelect.value]);
    alert("1");
    return device_prices[deviceSelect.value];

}

function getPortPrice() {
    var portSelect = document.getElementById('port');
    alert("2")
    return port_prices[portSelect.value];
}

function getPlanPrice() {
    var planSelected = document.getElementById('plan');
    alert("3")
    return plan_prices[planSelected.value];
}

function getInsurancePrice() {
alert("4")
    var insurancee = document.getElementById('insurance');
    return insurance_prices[insurancee.value];
}
function getCasePrice() {
alert("5")
    var caseSelect = document.getElementById('case');
    return phone_case[caseSelect.value];
}
function getScreenPrice() {
alert("6")
    var screenSelect = document.getElementById('screen');
    return screen_protector[screenSelect.value];
}

function calculateTotal() {
alert("7")
        var total = getDevicePrice()*getPlanPrice()*getPortPrice();
        total = total.toFixed(2);
        var totalEl = document.getElementById('total');

        document.getElementById('total').innerHTML = "Your Total is: $" +        total;

        totalEl.style.display = 'block';

}
function calculatedToral()

{
alert("8")
}
function hideTotal() {
alert("9")
    var totalEl = document.getElementById('total');
    totalEl.style.display = 'none';
    }

我已更正您的 JavaScript 的所有函数或方法,并且一切正常(我添加了 alert() 以进行功能检查)。自己检查计算错误

关于javascript - 有些方法有效,但不是全部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51692061/

相关文章:

javascript - Html 一次只为非单选按钮选择一个按钮

javascript - 单击选择标签时,为什么 IE 不取消选择输入中的文本

javascript - 程序无法在 Google Chrome 上运行

html - 模型驱动形式 : validation not working as expected in Angular 2

php - 使用 PHP 从多选下拉列表中获取数据以插入 MySQL

javascript - 检查 css 类是否存在,如果存在多少次

javascript - 在 javascript 中查找非单词、非空格和非连字符

javascript - Jquery 切换事件类

html - 调整浏览器窗口大小时如何使 div 流畅?

javascript - 如何过滤模型?