我有一个变量quantity
和另一个变量new quantity
。每当用户输入new quantity
时,都应将其添加到先前的数量总和中。
我有一个创建表单和一个编辑表单。 quantity
字段位于创建表单上,而newlyAdded
字段位于编辑表单上
这是架构片段
const mongoose = require('mongoose'),
stocksSchema = new mongoose.Schema({
name: String,
number: Number,
quantity: Number,
newlyAdded: Number,
sold: Number,
newlySold: Number,
balance: Number,
description: String,
...
ejs snippet
<% let justAdded = item.quantity + item.newlyAdded %>
<td><%= justAdded %></a></td>
例如,如果quantity = 10
和用户输入12
的新数字应为22
,并且如果再次添加10
,则新的数量应为{{1} },而是显示32
,因为它不存储先前添加的内容。我该如何解决?我知道编辑表单不适合此操作。
答案 0 :(得分:0)
通常,您有两种方法。
2。更新到服务器的值是相同的。但是,不是重定向,您可以直接控制dom。 使用jquery或javascript。
这是例如使用jquery的示例。
<input id="input" type="text" .. />
<td><a id="val"><%= justAdded %></a></td>
...
<script>
var oldVal = Number('<%= item.quantity %>');
$("#input").on("propertychange change keyup paste input", function() {
var currentVal = Number($(this).val());
var newVal = oldVal + currentVal;
if(currentVal == newVal) {
return;
}
$("#val").text(newVal);
oldVal = newVal;
});
</script>
答案 1 :(得分:0)
发现我用于数据库的mongodb具有增量运算符$inc
,解决了该问题。查看完整的description