У меня есть калькулятор, который продолжает давать NaN, если оба выбора (выпадающие) не имеют выбранной опции.
Первоначально это работало нормально с одним полем выбора и двумя флажками, как можно увидеть здесь https://codepen.io/Chazlie/pen/NZqdXg
Затем я попытался сделать так, чтобы у него было два выпадающих списка, но я получил NaNесли оба раскрывающихся списка не имеют выбора - это можно увидеть здесь https://codepen.io/Chazlie/pen/ewNBPR
Примечание: я не уверен, имеет ли это значение, но это также основано на условной логике, как можно видеть здесь https://codepen.io/Chazlie/pen/JQdGWG
Мой сценарий:
$(function(){
$("select.calculate").on("change", calc);
$("input[type=checkbox].calculate").on("click", calc);
$("select.thisone").on("change", calc);
function calc() {
var basePrice = 0;
newPrice = basePrice;
$("select.calculate option:selected, select.thisone option:selected, input[type=checkbox].calculate:checked").each(function () {
newPrice += parseInt($(this).data('price'), 10);
});
newPrice = newPrice.toFixed(2);
$("#item-price").html(newPrice);
}
});
Это мой HTML
<label>How long do you want the cover?</label>
<select name="howlongcover" class="thisone" >
<option>Pick one!</option>
<option data-price="55" value="valuhowlongcover" >24 Months a </option>
<option value="valuhowlongcover" data-price="58" >36 Months</option>
<option value="valuhowlongcover" data-price="71" >48 Months</option>
<option value="valuhowlongcover" data-price="119" >60 Months</option>
</select>
<label>How long do you want the cover 2?</label>
<select class="calculate" name="howlongcover">
<option>Pick one!</option>
<option value="valuhowlongcover" data-price="60" >24 Months b </option>
<option value="valuhowlongcover"data-price="65" >36 Months</option>
<option value="valuhowlongcover" data-price="79" >48 Months</option>
<option value="valuhowlongcover" data-price="139" >60 Months</option>
</select>
<BR><BR>
Please tick if any of the following apply<br>
<label><input class="calculate" type="checkbox" name="checks" data-price="25"><span></span> It's classed as a 4x4</label><BR>
<label><input class="calculate" type="checkbox" name="checks" data-price="25"><span></span> The engine is more than 2.5L</label><BR>
<label><class="calculate" type="checkbox" name="checks" data-price="25"><span></span> It's a commercial use</label><BR>
<BR>
Price: <span id="item-price">0</span>
Когда я добавил
$("select.thisone").on("change", calc);
и
$("select.calculate option:selected, select.thisone option:selected, input[type=checkbox].calculate:checked").each(function () {
newPrice += parseInt($(this).data('price'), 10);
});
и
<select name="howlongcover" class="thisone" >
Это когда я начал сталкиваться с проблемами с NaN и должен был выбрать оба выпадающих списка.(в форме никогда не будут выбраны оба выпадающих меню, потому что условная логика никогда не будет отображать оба)
Пожалуйста, посмотрите это перо https://codepen.io/Chazlie/pen/ewNBPR
РЕДАКТИРОВАТЬ: здесь полностью работающий кодовый ручка https://codepen.io/Chazlie/pen/ZdGLZm На этом работает только один выпадающий список "до 15 000 фунтов стерлингов", а затем выберите обложку в калькуляторе.Я показываю это по той причине, что вы можете увидеть, что я пытаюсь выполнить
Спасибо