gpt4 book ai didi

javascript - 在 Model.beforeValidate 中获取数组值

转载 作者:行者123 更新时间:2023-11-30 12:41:53 25 4
gpt4 key购买 nike

我正在尝试使用隐藏输入技术读取复选框输入的值。

rails/ActionView/Helpers/FormHelper/check_box

来自 ActivityOverlord 示例:

views/user/edit.ejs

<% if (user.admin) { %>
<input type="hidden" name="admin" value="unchecked">
<label class="checkbox"><input type="checkbox" name="admin" checked> Admin</label>
<% } else { %>
<input type="hidden" name="admin" value="unchecked">
<label class="checkbox"><input type="checkbox" name="admin"> Admin</label>
<% } %>

api/models/User.js

  beforeValidate: function (values, next) {
// renamed in Sails v0.10.x
// beforeValidation: function (values, next) {

if (typeof values.admin !== 'undefined') {
if (values.admin === 'unchecked') {
values.admin = false;
} else if (values.admin[1] === 'on') {
values.admin = true;
}
}
next();
},

在 Sails v0.9.x 中:

values.admin 是两个项目的数组。

在 Sails v0.10.x 中:

values.adminfalse

Sails v0.10.x 是否应该将数组传递给 beforeValidate

最佳答案

不要这样做。2 个 HTML 元素不应该有相同的名称!

像这样使用它:

<% if (user.admin) { %>
<label class="checkbox"><input type="checkbox" name="admin" checked value="yes"> Admin</label>
<% } else { %>
<label class="checkbox"><input type="checkbox" name="admin" value="yes"> Admin</label>
<% } %>

你可以在保存前制作数据:

var data = {
name: req.param("username"),
....
};

if(req.param("admin") == undefined){
data.admin = false;
}else{
data.admin = true;
}

比你可以使用你的

User.create(data, function(err, success) { ...

关于javascript - 在 Model.beforeValidate 中获取数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24155663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com