在Model.beforeValidate中获取数组值
我正在尝试使用隐藏的input技术来读取checkboxinput的值。
轨/的ActionView /助手/表单助手/ check_box
从ActivityOverlord示例:
视图/用户/ 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 /模型/ 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.admin
是false
。
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) { ...
- 在NodeJS中调用ES6callback中的基类
- 如何使用rewirejs和chai-spies来模拟一个函数来testing它?
- Node.js中的Facebook Messenger bot
- 在Buffer(Node.js)内容上执行.replace()?
- 如何在grunt.initConfig()之前执行asynchronous操作?
- 存储过程受节点mssql对象影响的行
- stomp nodejs不发送连接头
- Node.js Express,error handling仅适用于console.error
- Grunt:当函数不能被分割到不同的任务时,如何依次运行一个函数,然后是一个任务,然后是另一个函数?