javascript - 单击加号和减号按钮并调用其功能时如何获取要更新的数量值

标签 javascript jquery html html-table onclick

对于我正在处理的礼品网站,我很难使用加号和减号按钮更改数量。页面上的表格中显示了多个项目,因此理想情况下我能够单独更改每个项目的数量。

在 html 脚本标签中,我插入了一个 JavaScript 脚本,其中包含每次按下相应按钮时递增和递减值的函数,但是在运行网络应用程序时,单击按钮时什么也没有发生

下面是html中的脚本:

<script>
var count = 1;
var countEl = document.getElementById("count");
function plus(){
    count++;
    countEl.value = count;
}
function minus(){
    if (count > 1) {
        count--;
        countEl.value = count;
    }
}
</script>

下面是包含按钮的 html 代码:

 <c:forEach var = "row" items = "${result.rows}">
        <tr>
            <td><c:out value = "${row.gift_code}"/></td>
            <td><c:out value = "£${row.price}"/></td>
            <td><c:out value = "${row.stock}"/></td>
            <td><div id="outer">
                <div><button type="button" name="button"onclick="minus()"><img src="minus.jpg" alt="minus"/></button></div>
                <div><input type="text" name="name" value="1" size="10" id="count"></div>
                <div><button type="button" name="button"onclick="plus()"><img src="plus.jpg" alt="plus"/></button></div>
                </div>
            </td>
            <td>
                <form action="order.jsp" method="GET">
                    <input type = "hidden" name = "gift_code"
                           value = "${row.gift_code}" />
                    <input type = "hidden" name = "price"
                           value = "${row.price}" />
                    <input type = "submit" value = "Add to giftlist" />
                    <input type = "hidden" name = "stock"
                           value = "${row.stock}" />

                </form>
            </td>
        </tr>

    </c:forEach>

单击加号按钮时数量应增加 1,单击减号按钮时数量应减少 1,但当前数量保持不变

最佳答案

我测试了你的代码,它运行良好,但它不适用于多个输入,因为你将使用相同的变量。如果您的代码不起作用并且您的 html 与您提出的完全一样,则问题可能出在您的 html 和 javascript 代码之间的链接中。你有类似 <script src="myscripts.js"></script> 的东西吗?在你的 html 中?此页面可能对您有所帮助:https://www.w3schools.com/tags/att_script_src.asp

如果没有,这里有一个使用多个输入的例子:

function plus(elem){
    let targetElem = elem.parentNode.previousElementSibling.childNodes[0];
    let targetCount = parseInt(targetElem.value);
    targetCount++;
    targetElem.value = targetCount;
}
function minus(elem){
    let targetElem = elem.parentNode.nextElementSibling.childNodes[0];
    let targetCount = parseInt(targetElem.value);
    if (targetCount > 1) {
        targetCount--;
        targetElem.value = targetCount;
    }
}
<c:forEach var = "row" items = "${result.rows}">
        <tr>
            <td><c:out value = "${row.gift_code}"/></td>
            <td><c:out value = "£${row.price}"/></td>
            <td><c:out value = "${row.stock}"/></td>
            <td><div id="outer">
                <div><button type="button" name="button"onclick="minus(this)"><img src="minus.jpg" alt="minus"/></button></div>
                <div><input type="text" name="name" value="1" size="10" id="count1"></div>
                <div><button type="button" name="button"onclick="plus(this)"><img src="plus.jpg" alt="plus"/></button></div>
                
                                <div><button type="button" name="button"onclick="minus(this)"><img src="minus.jpg" alt="minus"/></button></div>
                <div><input type="text" name="name" value="1" size="10" id="count2"></div>
                <div><button type="button" name="button"onclick="plus(this)"><img src="plus.jpg" alt="plus"/></button></div>
                </div>
            </td>
            <td>
                <form action="order.jsp" method="GET">
                    <input type = "hidden" name = "gift_code"
                           value = "${row.gift_code}" />
                    <input type = "hidden" name = "price"
                           value = "${row.price}" />
                    <input type = "submit" value = "Add to giftlist" />
                    <input type = "hidden" name = "stock"
                           value = "${row.stock}" />

                </form>
            </td>
        </tr>

    </c:forEach>

请注意向函数添加的参数以及我使用相应输入元素的方式。如果您对它的工作原理有任何疑问。欢迎提问。

关于javascript - 单击加号和减号按钮并调用其功能时如何获取要更新的数量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54385478/

相关文章:

jquery - nginx 代理从 https 到 http 获取阻止加载混合事件内容错误

javascript - jQuery Scroll 事件在没有实际滚动的情况下触发

javascript - 如何使用 Canvas 绘制圆环图?

javascript - 如何以单一形式发布输入和选择类型

javascript - XML 和 JQuery 的问题

javascript - 当用户 session 过期时,所有窗口都需要关闭 如何?

html - 在 div 中将内容居中。 margin 0,自动不起作用。也不显示 :inline

javascript - 在 JSON stringify 数组中查找一个值

javascript - 尝试使用变量减少 javascript 的重复

javascript - 当一个元素的 id 以相同的两位或三位数字结尾时,如何获取一个元素的内容并将其添加到另一个元素中?