javascript - 如何根据总和限制数字输入

标签 javascript

这是我第一次处理大量的 javascript,所以如果这是一个基本问题,我深表歉意。

因此对于订单的一部分,一个人可以订购总共 10 个不同类型的比萨饼。你可以在这里得到它的要点:

<div><h3>Types of Pizzas</h3></div>
    <div>
        <input type="checkbox" name="selections" id="pizza1"><label>pizza1</label>
            <div id="PC1">
                <label>How Many?</label><input type="number" min="0" oninput="validity.valid||(value='');" class="pizzaTotal">
            </div>
    </div>

    <div>
        <input type="checkbox" name="selections" id="pizza2"><label>pizza2</label>
            <div id="PC2">
                <label>How Many?</label><input type="number" min="0" oninput="validity.valid||(value='');" class="pizzaTotal">
            </div>
    </div>

    <div>
        <input type="checkbox" name="selections" id="pizza3"><label>pizza3</label>
            <div id="PC3">
                <label>How Many?</label><input type="number" min="0" oninput="validity.valid||(value='');" class="pizzaTotal">
            </div>
    </div>

假设,如果一个人输入 4 份披萨 1 订单、5 份披萨 2 订单,并准备放入 2 份披萨 3 订单(11 个披萨),我将如何在不使用提交按钮的情况下限制他的输入实时?

谢谢

编辑:披萨的种类远不止三种。这只是我编写的代码的屏幕截图。

最佳答案

function maxForm()
{
    var x = parseInt(document.getElementById("pizza1a").value);
    var y = parseInt(document.getElementById("pizza2a").value);
    var z = parseInt(document.getElementById("pizza3a").value);
    if (x>10)
        document.getElementById("pizza1a").value = 10;
    else if (x+y>10)
        document.getElementById("pizza2a").value = 10-x;
    else if (x+y+z>10)
        document.getElementById("pizza3a").value = 10-x-y;
}
<h3>Types of Pizzas</h3>
<form>
    <input type="checkbox" name="selections" id="pizza1"><label>pizza1</label>
            <label>How Many?</label><input type="number" id="pizza1a" min="0" onchange="maxForm();" class="pizzaTotal"><br>
    <input type="checkbox" name="selections" id="pizza2"><label>pizza2</label>
            <label>How Many?</label><input type="number" id="pizza2a" min="0" onchange="maxForm();" class="pizzaTotal"><br>
    <input type="checkbox" name="selections" id="pizza3"><label>pizza3</label>
            <label>How Many?</label><input type="number" id="pizza3a" min="0" onchange="maxForm();" class="pizzaTotal"><br>
</form>
<script src="maxform.js"></script>

这是检查值所必需的 HTML 文件。我删除了所有我能找到的额外 div。接下来可以将上面的javascript作为同目录下的“maxform.js”来修改条目。

关于javascript - 如何根据总和限制数字输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36118117/

相关文章:

javascript - Angular httpPromise

javascript - Puppeteer:等到 elementHandle 不再附加到 DOM

javascript - 滚动时文本底部的不透明度

javascript - 尝试获取 span 元素的内部文本内容

javascript - 如何将 Angular4 typescript 类方法作为回调传递给 Javascript 函数

javascript - 将一组 DIV 滑动或淡入淡出

javascript - 启用 CORS 的正确位置在哪里?

javascript - 使用 C3.js 添加图像

javascript - 如何消除ajax调用的闪烁效果

javascript - 使用 forEach 迭代 NodeList 时如何仅使用绑定(bind)而不是调用?