javascript - 匹配下拉数量并计算总价
问题描述
我要选择参加人数,必须与用餐数量相匹配。
用户必须指定是素食还是非素食。一份蔬菜餐的价格为 5 美元,而一份非蔬菜餐的价格为 10 美元。例如,如果有 3 人参加,其中 2 位素食者和 1 位非素食者,则餐费总价为 20 美元。此外,用餐数量选项总共必须只有 3 人。我如何仅在 Javascript 中执行此操作?
我如何也显示最终价格?
function validate() {
var dn = document.getElementById("dropDN").value;
return false;
}
function showInput() {
document.getElementById('displaydn').innerHTML =
document.getElementById("dropDN").value;
}
<form class="myForm" onsubmit="return validate();">
Number of person attending:
<select id="dropDN">
<option value="">Select one</option>
<option value="One">1</option>
<option value="Two">2</option>
<option value="Three">3</option>
<option value="Four">4</option>
</select>
<br />
<br />Meal Quantity Options: Vegetarian
<input type="checkbox" onclick="" name="" id="veg">
<input type="number" max="4" />
<br /> Non-Vegetarian
<input type="checkbox" onclick="" name="" id="nonveg">
<input type="number" max="4" />
<br />
<br />
<br />
<input type="submit" onclick="showInput()">
<br>
<br> Number of person attending: <span id="displaydn"> </span>
<br />
</form>
解决方案
- 监听
change
两个input
控件的事件。 - 当它们发生变化时,更新相应的全局变量(
vegetarian
或者nonVegetarian
,然后更新总膳食和成本值。
var vegetarian = 0;
var nonVegetarian = 0;
var cost = 0.00;
document.querySelector('#veg').addEventListener('change', function(e)
{
vegetarian = parseInt(document.querySelector('#veg').value, 10);
if(vegetarian + nonVegetarian > 4) // Make sure we never have more than 4 customers
{
nonVegetarian--;
document.querySelector('#nonveg').value = nonVegetarian;
}
update();
});
document.querySelector('#nonveg').addEventListener('change', function(e)
{
nonVegetarian = parseInt(document.querySelector('#nonveg').value, 10);
if(vegetarian + nonVegetarian > 4) // Make sure we never have more than 4 customers
{
vegetarian--;
document.querySelector('#veg').value = vegetarian;
}
update();
});
var update = function()
{
document.querySelector('#attending').innerText = vegetarian + nonVegetarian;
document.querySelector('#cost').innerText = (vegetarian*5) + (nonVegetarian *10);
};
update();
<form class="myForm" onsubmit="return validate();">
Meal Quantity Options: Vegetarian
<input id="veg" type="number" min="0" max="4" value="0" /><br />
Non-Vegetarian
<input id="nonveg" type="number" min="0" max="4" value="0" /><br />
<br />
<br> Number of people attending: <span id="attending"></span>
<br> Cost : $<span id="cost"></span>
<br />
</form>
推荐阅读
- reactjs - 无法将反应手风琴面板项目传递给操作调用
- java - Gui- 使对象按特定标准移动
- swift - Swift 4 如何将文本打印到标签
- python - 为什么 numpy 混合基本/高级索引取决于切片邻接?
- java - 在另一个线程中捕获库引发的异常(android)
- php - 如何在 Wordpress 中为自定义表格创建单个视图页面
- python - 通过 Django 网页执行循环 python 脚本
- qfiledialog - 无法使用 QFileDialog.getSaveFileName 保存为 csv
- python - pytorch 中的自适应池化如何工作?
- rust - 如何在不制作任何副本的情况下将 bytes::Bytes 转换为 &str?