sails.js日期选择器不保存所选值

时间:2014-04-06 02:55:44

标签: javascript node.js date sails.js

我尝试将日期字段添加到编辑页面,并且日期选择器正在运行,并且可以选择日期,保存表单时,该字段在数据库中保持为空。

有谁能告诉我如何从sails.js中的日期选择器中捕获日期?

.ejs文件:

<form action="/user/update/<%= user.id %>" method="POST" class="form-signin">
<h2>Update User Information</h2>

First Name:&nbsp;<input value="<%= user.first_name %>" name="first_name" type="text" class="form-control"/>
Last Name:&nbsp;<input value="<%= user.last_name %>" name="last_name" type="text" class="form-control"/>
Title:&nbsp;<input value="<%= user.title %>" name="title" type="text" class="form-control"/>
Username:&nbsp;<input value="<%= user.username %>" name="username" type="text" class="form-control"/>
Email:&nbsp;<input value="<%= user.email %>" name="email" type="text" class="form-control"/>
Date of Birth:&nbsp;<input value="<%= user.dob %>" name="dob" type="date" class="form-control"/>
Gender:&nbsp;<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:&nbsp;<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'));
    });
},

1 个答案:

答案 0 :(得分:0)

使用日期输入类型时,您需要将值设置为正确的RFC339表示。从Sails获得的内容将是toString()调用它的日期。

设置值时,您应该可以格式化ejs文件中的日期:

<% var dob = (new Date(d)).toISOString().slice(0,10) %>    
Date of Birth:&nbsp;<input value="<%= dob %>" name="dob" type="date" class="form-control"/>