如何只使用一次 select 选项中的值?

How to use the value in a select option just once?

我正在建立一个在线商店。最终用户从下拉列表中选择 select 选项中的一个选项,然后将该选项的价格添加到主价格中。

<div id='custom-price'>1000</div>

<select id="capsize-price" onchange="changePri()" name="capsize-price">
 <option value='100'>100</option>
 <option value='700'>700</option>
</select>

  function changePri() {
   var customPrice = parseFloat(document.querySelector("#custom-price").textContent);
   var capsizePrice = document.querySelector("#capsize-price").value;

   var price = customPrice + capsizePrice;
   document.querySelector("#custom-price").textContent = price;
  }

我已经明白了,但后来我注意到价格一直在上涨。 例如,如果最终用户 select 首先只选择选项 1(100),然后 select 只选择选项 2 (700),它会添加两者的价格。

我知道这是根据我的代码应该做的,但我正在努力想出关于如何在用户 select 时只添加选项 1 然后只添加选项的逻辑2 当用户 select 选项 2 而不是它现在正在做的事情时。

感谢任何帮助。

你的逻辑是一旦用户选择了 capsize-price 就不可能知道原价是多少。您需要将 custom-price 的原始值存储在某处,并在生成最终价格时使用它。例如:

<div id='original-price'>1000</div>
<div id='custom-price'></div>

<select id="capsize-price" onchange="changePri()" name="capsize-price">
 <option value='100'>100</option>
 <option value='700'>700</option>
</select>

  function changePri() {
   var originalPrice = parseFloat(document.querySelector("#original-price").textContent);
   var capsizePrice = document.querySelector("#capsize-price").value;

   var customPrice = originalPrice + capsizePrice;
   document.querySelector("#custom-price").textContent = customPrice;
  }

不确定这是否是您要查找的内容?

function changePri() {
   var capsizePrice = parseInt(document.querySelector("#capsize-price").value);
   var price = basePrice + capsizePrice;
   document.querySelector("#custom-price").textContent = price;
}
  
const basePrice = 1000;  
document.querySelector("#custom-price").textContent = basePrice;
<div id='custom-price'></div>
<select id="capsize-price" onchange="changePri()" name="capsize-price">
 <option value='100'>100</option>
 <option value='700'>700</option>
</select>

基本上将您的 "base price" 放入一个 JS 常量中,然后将选择添加到其中。您可能应该使用处理程序而不是调用内联函数。