【发布时间】:2020-05-10 12:23:39
【问题描述】:
如下所示,循环中有输入标签39次
for (i = 0; i <= 39; i++) {
document.write("<button id='minus'>-</button><input type='text' id='input' value='0' ng-model='number" + i + "'><button id='plus'>+</button><br><br>");
};
let pb = document.getElementById("plus");
let mb = document.getElementById("minus");
let text = document.getElementById("input");
pb.onclick = function() {
let x = text.getAttribute("value");
text.setAttribute("value", ++x);
};
mb.onclick = function() {
let x = text.getAttribute("value");
if (x >= 1) {
text.setAttribute("value", --x);
};
};
但我需要的是当我在循环中单击旁边的按钮时,使用该特定的 ng-model 编号增加/减少文本框的值。
还有那些为上面的“Total”文本框提供信息的文本框,它显示文本框中所有值的加法。所以只是更新值属性不起作用,有点角度,所以请帮我解决这个问题。
(dev.pfokus.com/product/caponi) 打开此 url 并选择产品、数量和颜色选择,观察控制台的行为。在颜色框中写一些数字,总字段得到更新。请检查控制台并帮助我解决添加 +/- 按钮的问题。
(justpaste.it/5tbwj) 这是我的 webiste 目录中 angular js 指令中的代码。这是从文本框中获取输入值的内容,请尝试使用 +/- 按钮触发。
这些是当我将“1”添加到文本框以及通过键盘输入将“2”添加到同一文本框时的控制台图像。
提前致谢:)
【问题讨论】:
-
你会得到 39 个按钮,它们都具有相同的 id,使它们独一无二。您可以使用 data 属性来设置 ng-modal。当收到点击事件时,读取数据属性
-
@Grumpy (dev.pfokus.com/product/caponi) 打开此网址并选择产品、数量,然后它会带您选择颜色,观察控制台的行为。在颜色框中写一些数字,总字段得到更新。请检查控制台并帮助我解决添加 +/- 按钮的问题,谢谢。
-
您需要从修复重复的 ID 开始,否则您不能指望它能够正常工作。
getElementById只会为您获取文档中具有指定 ID 的第一个元素,如果您非法使用多个相同的 ID,您将无法使用此方法找到它们。 -
@04FS 我可以通过关注附近的文本字段或类来区分它们。但我需要的是将当前文本字段值发送到总计。如果我正在输入它,它正在工作,如果使用按钮增加值,它不会将数据发送到总值。涉及到 AngularJS,所以需要帮助。
-
可能在某处附加了一些更改事件处理程序 - 但更改事件仅在用户更改字段值时触发,而不是在通过脚本发生时触发。在通过单击按钮更改其值之后,您可以通过显式触发字段上的更改事件来使其工作。 stackoverflow.com/a/25709149/10955263解释基本原理。
标签: javascript php html angularjs