मैं एक ऐसा फॉर्म बनाने की कोशिश कर रहा हूं जो किसी आइटम के आधार मूल्य को स्वचालित रूप से कम कर देता है कि आप जेएस के साथ कितना ऑर्डर करते हैं। आप नीचे जावास्क्रिप्ट देख सकते हैं:

window.addEventListener("load", e => {
  var cardcost = 10;
  document.getElementById("count").addEventListener("input", updateCost);

  function updateCost(e) {
    let val = e.target.value

    if (val >= 100 && val <= 499) {
      cardcost = cardcost * .95;
    }
    if (val >= 500 && val <= 999) {
      cardcost = cardcost * .9;
    }
    if (val >= 1000) {
      cardcost = cardcost * .85;
    }
  }
  document.getElementById("curcost").textContent = cardcost;
});
<div>
  <form action="send.php" method="POST" class="form-content" id="popupform">
    <label for="count">
             <h4>How many cards would you like?</h4>
             <input type="text" name="count" value="50" id="count">
           </label>
    <p>Current Cost Per Product: <output id="curcost"></output> </p>
  </form>
</div>

तो मेरे पास शीर्ष पर आधार कार्ड मान है और इनपुट मान की पहचान करने के लिए एक ईवेंट श्रोता है। फिर मैंने इनपुट की सीमा को अलग करने के लिए एक कथन की कोशिश की और मैं प्रति आइटम वर्तमान लागत को अद्यतन करने के लिए अपने आधार मूल्य पर विभिन्न अनुपातों को गुणा करना चाहता हूं। यह लक्ष्य मान की पहचान कर सकता है लेकिन यह if कथनों के माध्यम से नहीं चलता है।

किसी भी तरह की सहायता का स्वागत किया जाएगा! (मुझ पर आसान हो जाओ मैं जेएस के लिए नया हूँ)

0
Olivia 20 मार्च 2021, 03:17

1 उत्तर

मैं इस उत्तर में एक छोटा सा सुधार करने के लिए अनुसरण कर रहा हूं। जैसा कि था, यदि उपयोगकर्ता एक उत्तर में टाइप करता है और फिर उसे हटा देता है या गुणवत्ता बदलता है, तो कार्ड मूल्य की गणना अद्यतन मूल्य बनाम मूल आधार मूल्य के आधार पर की जाती है। मैंने प्रत्येक if कथन की शुरुआत में इस newcardcost=cardcost के साथ मूल्य को साफ़ करके इसे ठीक किया है:

    var cardcost = 10

    document.getElementById("count").addEventListener("input", updateCost);
    function updateCost(e) {
      let val = e.target.value
      let newcardcost = cardcost;
      if (val >= 100 && val <= 499) {
        newcardcost=cardcost;
        newcardcost = (cardcost * .95).toFixed(2);
      }
      if (val >= 500 && val <= 999) {
        newcardcost=cardcost;
        newcardcost = (cardcost * .9).toFixed(2);
      }
      if (val >= 1000) {
        newcardcost=cardcost;
        newcardcost = (cardcost * .85).toFixed(2);
      }
      document.getElementById("curcost").textContent = newcardcost;
    }

यह काम करता है, लेकिन मैं सोच रहा हूं कि ऐसा करने का एक और अधिक प्रभावी तरीका है या नहीं। आपकी टिप्पणियों के लिए आभार।

0
Olivia 20 मार्च 2021, 15:53