使用jquery UI插件时,属性日期必须是有效的日期错误

时间:2012-02-16 06:23:22

标签: grails groovy grails-plugin

我有一个tasks类,其中有一个date字段。在我的视图文件中,我有这行代码:

<g:textField name="date" value="${tasksInstance?.date}" id="datePicker" />

使用jquery ui插件,我将此代码添加到我的<head>标记中:

<g:javascript>
$(document).ready(function()
{
$("#datePicker").datepicker({dateFormat: 'mm/dd/yy'});
})
</g:javascript>

但是当我保存date字段时,我收到以下错误:

Property date must be a valid Date error

编辑:

Tasks.groovy

package mnm.schedule

class Tasks {
    static belongsTo = [ user : User, project: Project ]
        String reason
        boolean completed
        String title
        String description 
                Date date
        static constraints = {
            user(nullable:false)
            completed(nullable:true)
            title(nullable:false)
            description(size:1..500,nullable:false)
                reason(nullable:true)
        }
        String toString(){
                this.title
        }
}

控制器操作代码为:

def save() {
        def adminProject = params.managersProject
        def foundProject = Project.findByNameLike("$adminProject")
        def tasksInstance = new Tasks(params)
        foundProject.addToTasks(tasksInstance)
        if (!tasksInstance.save(flush: true)) {
            render(view: "create", model: [tasksInstance: tasksInstance])
            return
        }
        redirect(action: "show", id: tasksInstance.id)
    }

如何从中恢复?

2 个答案:

答案 0 :(得分:4)

我假设您收到的字符串为'02/16/2012'?你可以打电话:

params.date = Date.parse( 'MM/dd/yyyy', params.date )

在创建Task对象之前......

使用PropertyEditorSupport

可能还有一种在Grails中自动执行此操作的方法

修改

此外,在grails 2.0中,您可以执行以下操作:

def date = params.date( 'myVar', 'MM/dd/yyyy' )

从params对象中解析日期参数

答案 1 :(得分:-3)

似乎这种格式不支持jquery更改日期格式