【发布时间】:2014-04-06 02:55:43
【问题描述】:
我正在尝试将日期字段添加到编辑页面,当日期选择器正在工作并且可以选择日期时,保存表单时,该字段在数据库中保持为空。
谁能告诉我如何从sails.js 中的日期选择器中获取日期?
.ejs 文件:
<form action="/user/update/<%= user.id %>" method="POST" class="form-signin">
<h2>Update User Information</h2>
First Name: <input value="<%= user.first_name %>" name="first_name" type="text" class="form-control"/>
Last Name: <input value="<%= user.last_name %>" name="last_name" type="text" class="form-control"/>
Title: <input value="<%= user.title %>" name="title" type="text" class="form-control"/>
Username: <input value="<%= user.username %>" name="username" type="text" class="form-control"/>
Email: <input value="<%= user.email %>" name="email" type="text" class="form-control"/>
Date of Birth: <input value="<%= user.dob %>" name="dob" type="date" class="form-control"/>
Gender: <input value="<%= user.gender %>" name="gender" type="text" class="form-control">
Zip Code:<input value="<%= user.zip_code %>" name="zip_code" type="text" class="form-control">
Activation Date:<input value="<%= user.activation_date %>" name="activation_date" type="date" class="form-control"/>
Expiration Date:<input value="<%= user.expiration_date%>" name="expiration_date" type="date" class="form-control"/>
Admin: <input value="<%= user.admin %>" name="admin" type="text" class="form-control"/>
<input type="submit" value="Proceed" class="btn btn-lg btn-primary btn-block"/>
<input type="hidden" name="_csrf" value="<%= _csrf %>" />
这是来自用户控制器的代码:
edit: function(req, res, next) {
User.findOne(req.param('id'), function foundUser(err, user) {
if(err) return next(err);
if(!user) return next('user doesn\'t exist.');
res.view({
user: user
});
});
},
update: function(req, res, next) {
User.update(req.param('id'), req.params.all(), function userUpdated(err,user){
if(err) {
return res.redirect('user/edit' + req.param('id'));
}
res.redirect('/user/show/' + req.param('id'));
});
},
【问题讨论】:
-
您必须发布处理
/user/update/:id操作的代码。如果您显示您在服务器端获取的数据也会有所帮助,因为我们不知道您使用的是什么日期选择器以及它发送的格式。 -
表单似乎正在向数据库提交日期,但是当再次打开记录进行编辑时,字段未设置为数据库中的值。它们只显示“YY/MM/YY”默认值。
-
抱歉,如果您不发布任何服务器端代码,并且不知道发布的是什么实际数据,真的无法提供帮助。
-
我的错。我添加了调用编辑表单的代码和从编辑表单调用的更新函数。如果我缺少您需要查看的任何代码,请告诉我。提前感谢您的帮助!
-
好的,现在发布什么数据?尝试在您的更新函数中添加
console.log(req.param('dob'))以查看。
标签: javascript node.js date sails.js