【问题标题】:sails.js date picker isn't saving selected valuesails.js 日期选择器未保存所选值
【发布时间】: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:&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'));
    });
},

【问题讨论】:

  • 您必须发布处理/user/update/:id 操作的代码。如果您显示您在服务器端获取的数据也会有所帮助,因为我们不知道您使用的是什么日期选择器以及它发送的格式。
  • 表单似乎正在向数据库提交日期,但是当再次打开记录进行编辑时,字段未设置为数据库中的值。它们只显示“YY/MM/YY”默认值。
  • 抱歉,如果您不发布任何服务器端代码,并且不知道发布的是什么实际数据,真的无法提供帮助。
  • 我的错。我添加了调用编辑表单的代码和从编辑表单调用的更新函数。如果我缺少您需要查看的任何代码,请告诉我。提前感谢您的帮助!
  • 好的,现在发布什么数据?尝试在您的更新函数中添加console.log(req.param('dob')) 以查看。

标签: javascript node.js date sails.js


【解决方案1】:

使用日期输入类型时,您需要将值设置为正确的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"/>

【讨论】:

    猜你喜欢
    • 2019-11-15
    • 1970-01-01
    • 2014-07-09
    • 1970-01-01
    • 2015-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多