steph99999 Ответов: 2

Что не так с моим кодом в этом расчете


Я пытаюсь сделать несколько вычислений за один раз, но это не работает
могу я узнать, что случилось?

Что я уже пробовал:

<!DOCTYPE html>
<html lang="en">
<head>
<img src="lempeng2.jpg" alt="lempeng" style="width:700px;height:100px;">
    <meta charset="UTF-8">
    <title>prehot1</title>
    <style type="text/css">
    
    ul {width: 5000px; margin: 100px auto; overflow: hidden;}
    /*代码开始*/
    li {
        /* 这些都不重要 */
        float: left;width: 200px;background: #FFFFFF;height: 350px;margin-right: 10px;
        /* 重点 */
        text-align: center;
    }
    /* 重点 */  display: inline-block使P的宽度根据文字的宽度伸缩
    p {
        display: inline-block;
        text-align: left;
    }
    </style>
	
    <script>
        getPrice = function() {
            
            var numVal2 = Number(document.getElementById("q1").value) ;
            var totalValue = 6.99*  numVal2
			document.getElementById("demo").value =totalValue.toFixed();
        
		    var numVal3 = Number(document.getElementById("q2").value) ;
            var totalValue = 2.55*  numVal3
			document.getElementById("nani").value =totalValue.toFixed();
       }
    </script>
</head>
<body>
    
      <div style="text-align:center">  <h2>Your Order  </h2>
<p>Customer ID: <input type="text" name="id" required />   Customer Phone: <input type="text" name="phone" required /></p>
</div>
<ul>
     <li><p> Order item</p><p>Lempang pisang : </p><p>Lempang kelapa keju:</p><p>Lempang sardin:</p><p>Lempang sayur:</p></li>
    <li><p> Price(RM) </p> <p><input type="number" disabled="disabled" value="6.99"> </p><p><input type="number" disabled="disabled" value="2.55"> </p><p><input type="number" disabled="disabled" value="5.55"></p><p><input type="number" disabled="disabled" value="2.99"> </p></li>
	  <li><p>Quantity required </p> <p><input type="number" id="q1" required </p><p><input type="number" name="q2" required </p> <p><input type="number" name="q3" required </p><p><input type="number" name="q4" required </p><p>Total Price Point :</p><p>Discount :</p><p><h4>AFTER DISCOUNT(RM):</h4></p></li>
	    <li><p>Total Price</p> <p><input type="number" id="demo" required </p> <p><input type="number" name="nani" required </p> <p><input type="number" name="nano" required </p><p><input type="number" name="nana" required </p><p><input type="number" name="name" required </p><p><input type="number" name="name" required </p><p><input type="number" name="name" required </p></li>
		  <li><p>Point</p> <p><input type="number" name="name" required </p> <p><input type="number" name="name" required </p> <p><input type="number" name="name" required </p> <p><input type="number" name="name" required </p> <p><input type="number" name="name" required </p></li>
		
</ul>
<button onclick="getPrice() ">Process</button>
<button type="Reset" onclick="return myFunction()">Reset</button>
</body>
</html>

Richard MacCutchan

Что значит "не работает" означает?

steph99999

Расчеты не вызывают

Patrice T

Уточните: "это не работает"
То, что не соответствует вашим ожиданиям.

steph99999

Расчеты не дают ответа на этот вопрос

Patrice T

Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.

Richard MacCutchan

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

Richard MacCutchan

Это происходит потому, что ряд ваших текстовых полей не имеют действительного значения. id атрибут.

2 Ответов

Рейтинг:
14

CHill60

Предполагая, что вы имеете в виду, что элемент "Нани" не обновляется, это происходит потому, что вы пытаетесь установить значение с помощью

document.getElementById("nani").value =totalValue.toFixed();
и у вас нет никаких элементов с этим идентификатором.

У вас действительно есть элемент с этим имя хотя
<input type="number" name="nani" required </p>
Попробуйте изменить это на
<input type="number" id="nani" required </p>


Edit: учитывая, что у вас есть больше именованных элементов, чем те, которые имеют идентификаторы, вам может быть лучше переключиться на использование Документ.getElementsByName()[^] вместо


Richard MacCutchan

+5. То же касается и справки с показателем 2 квартала, и я подозреваю, что все остальное.

CHill60

Спасибо. На самом деле я не заметил q2,q2 и q4! q1 в порядке, как и демо в следующей группе, но они, похоже, единственные :-)
Учитывая этот факт, я собираюсь предложить вместо этого OP getElementsByName.

Richard MacCutchan

Да, но посмотрите, сколько из них имеют name="name".

Maciej Los

5ed!

Рейтинг:
1

Richard MacCutchan

Есть много неправильных вещей. Во-первых, поля ввода неправильно идентифицированы, поэтому вы не можете захватить или обновить многие из них. Во-вторых, ваша вычислительная функция пытается вычислить только первые два элемента. Я изменил ваш код, чтобы обеспечить частичное решение, которое должно помочь вам понять, что еще нужно. Кроме того, я понятия не имею, какие еще расчеты требуются.

<!DOCTYPE html>
<html lang="en">
<head>
<img src="lempeng2.jpg" alt="lempeng" style="width:700px;height:100px;">
    <meta charset="UTF-8">
    <title>prehot1</title>
    <style type="text/css">
    
    ul {width: 5000px; margin: 100px auto; overflow: hidden;}
    
    li {
        /* 这些都不重要 */
        float: left;width: 200px;background: #FFFFFF;height: 350px;margin-right: 10px;
        /* 重点 */
        text-align: center;
    }
    /* 重点  */ display: inline-block - P will resize according to text width
    p {
        display: inline-block;
        text-align: left;
    }
    </style>
	
    <script>
        getPrice = function() {
            for (i = 1; i <= 4; i++) {
                // this loop allows you to select each set of input fileds by id.
                // those with ids p1,p2 etc are the price fields,
                // q1, q2 etc are the quantities,
                // tot1, tot2 etc are the calculated totals.
                // No idea what the "Point" boxes are for, or how to calculate discounts
                var id = "p" + i;
                var price = Number(document.getElementById(id).value);
                id = "q" + i;
                var qty = Number(document.getElementById(id).value);
                var total = price * qty;
                id = "tot" + i;
                document.getElementById(id).value = total.toFixed();
            }
       }
    </script>
</head>
<body>
    
      <div style="text-align:center">  <h2>Your Order  </h2>
<p>Customer ID: <input type="text" name="id" required />   Customer Phone: <input type="text" name="phone" required /></p>
</div>
<ul>
<!-- tidied up these LI items to make the code more readable, and added id fields for the
     price, quantity and total boxes. Point and Discount boxes still to do -->
     <li><p> Order item</p>
        <p>Lempang pisang : </p>
        <p>Lempang kelapa keju:</p>
        <p>Lempang sardin:</p>
        <p>Lempang sayur:</p></li>
    <li><p> Price(RM) </p> 
        <p><input type="number" id="p1" disabled="disabled" value="6.99"> </p>
        <p><input type="number" id="p2" disabled="disabled" value="2.55"> </p>
        <p><input type="number" id="p3" disabled="disabled" value="5.55"></p>
        <p><input type="number" id="p4" disabled="disabled" value="2.99"> </p></li>
      <li><p>Quantity required </p> 
        <p><input type="number" id="q1" required </p>
        <p><input type="number" id="q2" required </p> 
        <p><input type="number" id="q3" required </p>
        <p><input type="number" id="q4" required </p>
        <p>Total Price Point :</p>
        <p>Discount :</p>
        <p><h4>AFTER DISCOUNT(RM):</h4></p></li>
        <li><p>Total Price</p> 
            <p><input type="number" id="tot1" required </p> 
            <p><input type="number" id="tot2" required </p> 
            <p><input type="number" id="tot3" required </p>
            <p><input type="number" id="tot4" required </p>
            <p><input type="number" name="name" required </p>
            <p><input type="number" name="name" required </p>
            <p><input type="number" name="name" required </p></li>
          <li><p>Point</p> <p><input type="number" name="name" required </p> 
            <p><input type="number" name="name" required </p> 
            <p><input type="number" name="name" required </p> 
            <p><input type="number" name="name" required </p> 
            <p><input type="number" name="name" required </p></li>
		
</ul>
<button onclick="getPrice() ">Process</button>
<button type="Reset" onclick="return myFunction()">Reset</button>
</body>
</html>