Js 函数参数取决于 EJS 中提交的值
Js function argument depend upon the submitted value in EJS
我正在构建一个快速应用程序。我有一个下拉列表,其提交的值被传递给 users.js
并启动 mongodb 查询。然后,该查询的结果被传递回 ejs 并成为脚本函数的参数。
问题是我希望在单击“提交”时调用该函数。 (我能承受页面渲染的延迟)。
现在,我有两个按钮,一个用于提交,一个用于调用该函数。
index2.ejs
<form action="/users/details" method="POST">
<fieldset>
<select required class="selectpicker" name="selectpicker">
<!-- options -->
</select>
<input type="submit" id="submit-form" />
</fieldset>
</form>
<button onclick="popu(<%= JSON.stringify(coun) %>);">blue</button>
和users.js
router.get("/index2", function(req, res, next) {
(async function() {
count = await funcoun(coll); // a mongodb query
res.render("index2", {title: 'some data', userdataa: a, imgsrc : coll, coun : count});
}) ();
});
router.post("/details", function(req, res, next) {
coll = req.body.selectpicker;
res.redirect("/users/index2");
})
所以,基本上我希望表单传递值(coll)来表达,计算count
,用这个值调用函数,然后渲染页面。
目前,count
的计算是在旧值的基础上完成的,当点击blue
按钮时,然后是当前值。
我很困惑,如果我把 onclick
放在提交按钮中,它会做什么,因为尚未计算 coun。
<body onload = "popu(<%= JSON.stringify(coun) %>);">
解决了问题
我正在构建一个快速应用程序。我有一个下拉列表,其提交的值被传递给 users.js
并启动 mongodb 查询。然后,该查询的结果被传递回 ejs 并成为脚本函数的参数。
问题是我希望在单击“提交”时调用该函数。 (我能承受页面渲染的延迟)。
现在,我有两个按钮,一个用于提交,一个用于调用该函数。
index2.ejs
<form action="/users/details" method="POST">
<fieldset>
<select required class="selectpicker" name="selectpicker">
<!-- options -->
</select>
<input type="submit" id="submit-form" />
</fieldset>
</form>
<button onclick="popu(<%= JSON.stringify(coun) %>);">blue</button>
和users.js
router.get("/index2", function(req, res, next) {
(async function() {
count = await funcoun(coll); // a mongodb query
res.render("index2", {title: 'some data', userdataa: a, imgsrc : coll, coun : count});
}) ();
});
router.post("/details", function(req, res, next) {
coll = req.body.selectpicker;
res.redirect("/users/index2");
})
所以,基本上我希望表单传递值(coll)来表达,计算count
,用这个值调用函数,然后渲染页面。
目前,count
的计算是在旧值的基础上完成的,当点击blue
按钮时,然后是当前值。
我很困惑,如果我把 onclick
放在提交按钮中,它会做什么,因为尚未计算 coun。
<body onload = "popu(<%= JSON.stringify(coun) %>);">
解决了问题