亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

用js和html進行簡單的數學計算

用js和html進行簡單的數學計算

侃侃爾雅 2023-08-18 10:04:24
我在小提琴示例中遇到兩個問題。首先,當您單擊復選框時,它應該立即進行計算,但事實并非如此。您只需首先更改保管箱值,然后檢查值,然后它就可以工作了。有誰知道從復選框中選擇值后該怎么做才能得到結果?我需要默認選擇標準選項。第二件事是我需要從相同的值但小于 10% 和 20% 的值中獲得結果。var checkboxes = document.querySelectorAll('.sum')var select = document.querySelector('#select')var total = document.querySelector('#payment-total,#payment-total-2')var checkboxesTotal = 0var selectTotal = 0checkboxes.forEach(function(input) {  input.addEventListener('change', onCheckboxSelect)})select.addEventListener('change', onSelectChange)function onCheckboxSelect(e) {  var sign = e.target.checked ? 1 : -1  checkboxesTotal += sign * parseInt(e.target.value, 10)  renderTotal()}function onSelectChange(e) {  var value = parseInt(e.target.value, 10)  if (!isNaN(value)) {    selectTotal = value    renderTotal()  }}function renderTotal() {  total.innerHTML = checkboxesTotal * selectTotal}<ul>  <li><label class="checkbox" for="Checkbox1">    <input value="190" type="checkbox" class="sum"> Value 1    </label></li>  <li><label class="checkbox">    <input value="190" type="checkbox" class="sum"> Value 2    </label></li>  <li><label class="checkbox">    <input value="170" type="checkbox" class="sum"> Value 3    </label></li></ul><br/><br/><select id="select" name="select">  <option value="1" class="sum">Basic</option>  <option value="2" class="sum" selected="selected">Standard</option>  <option value="3" class="sum">Premium</option></select><br/><p>3 months <br>sum: <span id="payment-total">0</span> ;- month.</p><p>6 months (10% off) <br>sum: <span id="payment-total-2">0</span> ;- month.</p><p>12 months (20% off) <br>sum: <span id="payment-total-3">0</span> ;- month.</p>
查看完整描述

2 回答

?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

復選框的問題在于您正在設置 的初始值,var selectTotal = 0并且在選中一個復選框時,將使用 進行計算selectTotal = 0,這意味著total3.innerHTML = checkboxesTotal * selectTotal = 190 * 0 = 0(對于選中的第一個復選框)。selectTotal您可以通過初始化為默認值(標準)來更改它,2或者在選中復選框時,您可以從下拉列表中獲取選定的值。

第一種方法是var selectTotal = 2

var checkboxes = document.querySelectorAll('.sum')

var select = document.querySelector('#select')

var total3 = document.querySelector('#payment-total')

var total6 = document.querySelector('#payment-total2')

var total12 = document.querySelector('#payment-total3')

var checkboxesTotal = 0;

var selectTotal = 2; // Standard (default dropdown value)


checkboxes.forEach(function(input) {

  input.addEventListener('change', onCheckboxSelect)

})


select.addEventListener('click', onSelectChange)


function onCheckboxSelect(e) {

  var sign = e.target.checked ? 1 : -1

  checkboxesTotal += sign * parseInt(e.target.value, 10)

  renderTotal()

}


function onSelectChange(e) {

  var value = parseInt(e.target.value, 10)

  if (!isNaN(value)) {

    selectTotal = value

    renderTotal()

  }

}


function renderTotal() {

  total3.innerHTML = checkboxesTotal * selectTotal

  total6.innerHTML = (checkboxesTotal * selectTotal / 100) * (-10) + (checkboxesTotal * selectTotal)

  total12.innerHTML = (checkboxesTotal * selectTotal / 100) * (-20) + (checkboxesTotal * selectTotal)

}

<ul>

<li><label class="checkbox">

    <input value="190" type="checkbox" class="sum"> Wadowice

</label></li>

<li><label class="checkbox">

    <input value="190" type="checkbox" class="sum"> Kalwaria

  </label></li>

  <li><label class="checkbox">

    <input value="170" type="checkbox" class="sum"> Zator

  </label></li>

</ul>


<br/>

<br/>


<select id="select" name="select">

    <option value="1" class="sum">Basic</option>

    <option value="2" class="sum" selected="selected">Standard</option>

    <option value="3" class="sum">Premium</option>

  

</select>



<br/>

<p>

3 months <br>sum: <span id="payment-total">0</span> ;- month.

</p>


<p>

6 months <br>sum: <span id="payment-total2">0</span> ;- month.

</p>


<p>

12 months <br>sum: <span id="payment-total3">0</span> ;- month.

</p>


第二種方法是在選擇復選框時獲取下拉值:


var checkboxes = document.querySelectorAll('.sum')

var select = document.querySelector('#select')

var total3 = document.querySelector('#payment-total')

var total6 = document.querySelector('#payment-total2')

var total12 = document.querySelector('#payment-total3')

var checkboxesTotal = 0;

var selectTotal = 0;


checkboxes.forEach(function(input) {

  input.addEventListener('change', onCheckboxSelect)

})


select.addEventListener('click', onSelectChange)


function onCheckboxSelect(e) {

  var sign = e.target.checked ? 1 : -1

  checkboxesTotal += sign * parseInt(e.target.value, 10)

  var select = document.getElementById("select");

  // get selected value and assign it to the global variable selectTotal

  selectTotal = select.options[select.selectedIndex].value;

  renderTotal()

}


function onSelectChange(e) {

  var value = parseInt(e.target.value, 10)

  if (!isNaN(value)) {

    selectTotal = value

    renderTotal()

  }

}


function renderTotal() {

  total3.innerHTML = checkboxesTotal * selectTotal

  total6.innerHTML = (checkboxesTotal * selectTotal / 100) * (-10) + (checkboxesTotal * selectTotal)

  total12.innerHTML = (checkboxesTotal * selectTotal / 100) * (-20) + (checkboxesTotal * selectTotal)

}

<ul>

<li><label class="checkbox">

    <input value="190" type="checkbox" class="sum"> Wadowice

</label></li>

<li><label class="checkbox">

    <input value="190" type="checkbox" class="sum"> Kalwaria

  </label></li>

  <li><label class="checkbox">

    <input value="170" type="checkbox" class="sum"> Zator

  </label></li>

</ul>


<br/>

<br/>


<select id="select" name="select">

    <option value="1" class="sum">Basic</option>

    <option value="2" class="sum" selected="selected">Standard</option>

    <option value="3" class="sum">Premium</option>

  

</select>



<br/>

<p>

3 months <br>sum: <span id="payment-total">0</span> ;- month.

</p>


<p>

6 months <br>sum: <span id="payment-total2">0</span> ;- month.

</p>


<p>

12 months <br>sum: <span id="payment-total3">0</span> ;- month.

</p>


查看完整回答
反對 回復 2023-08-18
?
鳳凰求蠱

TA貢獻1825條經驗 獲得超4個贊

好的,我找到了百分比問題的解決方案,現在它完成了所需的工作。但仍在嘗試找出復選框。在您單擊下拉菜單之前,他們仍然不會響應。提前致謝!


var checkboxes = document.querySelectorAll('.sum')

var select = document.querySelector('#select')

var total3 = document.querySelector('#payment-total')

var total6 = document.querySelector('#payment-total2')

var total12 = document.querySelector('#payment-total3')

var checkboxesTotal = 0

var selectTotal = 0


checkboxes.forEach(function(input) {

  input.addEventListener('change', onCheckboxSelect)

})


select.addEventListener('click', onSelectChange)


function onCheckboxSelect(e) {

  var sign = e.target.checked ? 1 : -1

  checkboxesTotal += sign * parseInt(e.target.value, 10)

  renderTotal()

}


function onSelectChange(e) {

  var value = parseInt(e.target.value, 10)

  if (!isNaN(value)) {

    selectTotal = value

    renderTotal()

  }

}


function renderTotal() {

  total3.innerHTML = checkboxesTotal * selectTotal

  total6.innerHTML = (checkboxesTotal * selectTotal / 100) * (-10) + (checkboxesTotal * selectTotal)

  total12.innerHTML = (checkboxesTotal * selectTotal / 100) * (-20) + (checkboxesTotal * selectTotal)

}

<ul>

<li><label class="checkbox">

    <input value="190" type="checkbox" class="sum"> Wadowice

</label></li>

<li><label class="checkbox">

    <input value="190" type="checkbox" class="sum"> Kalwaria

  </label></li>

  <li><label class="checkbox">

    <input value="170" type="checkbox" class="sum"> Zator

  </label></li>

</ul>


<br/>

<br/>


<select id="select" name="select">

    <option value="1" class="sum">Basic</option>

    <option value="2" class="sum" selected="selected">Standard</option>

    <option value="3" class="sum">Premium</option>

  

</select>



<br/>

<p>

3 months <br>sum: <span id="payment-total">0</span> ;- month.

</p>


<p>

6 months <br>sum: <span id="payment-total2">0</span> ;- month.

</p>


<p>

12 months <br>sum: <span id="payment-total3">0</span> ;- month.

</p>


查看完整回答
反對 回復 2023-08-18
  • 2 回答
  • 0 關注
  • 164 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號