【发布时间】:2021-08-14 08:04:33
【问题描述】:
我正在使用 Grails 4。我的图书域有一个名为 publishDate 的日期字段。我在编辑视图中使用
请教我如何用 jQuery UI 日期选择器替换 Grails 日期选择器?
谢谢!
【问题讨论】:
标签: grails datepicker
我正在使用 Grails 4。我的图书域有一个名为 publishDate 的日期字段。我在编辑视图中使用
请教我如何用 jQuery UI 日期选择器替换 Grails 日期选择器?
谢谢!
【问题讨论】:
标签: grails datepicker
如果旧的社区插件仍在运行,您可以搜索他们的代码以找到您的解决方案。由于 Grails 不再支持其社区,您可以尝试通过 github 查找旧插件。这将是您最快的解决方案。
【讨论】:
如果这对您或遇到此问题的任何其他人有帮助:我们所做的是创建自己的标签来完成此操作。您必须对其进行一些调整以使其适合您,并包含来自 jquery ui 的必要资产,但标签类似于:
/*
* Render an input field that includes a calendar popup.
*/
def dateField = { attrs ->
if (!attrs.id) {
out << "'id' is a required attribute."
return
}
def additionalKeys = attrs.keySet() - ['id','name','value','className']
def passthroughAttrs =""
additionalKeys.each{key->
passthroughAttrs += "${key}='${attrs[key]}' "
}
out << "<input type='text' class='calendarField ${attrs.className ?: ''}' id='${attrs.id}' name='${attrs.name ?: attrs.id}' value='${attrs.value ?: ''}' autocomplete='off' "
out << "onfocus=\"jQuery(this).datepicker().datepicker('show');\" "
out << "$passthroughAttrs/>"
out << "<img id='cal_${attrs.id}' class='calendarIcon' alt='Show Calendar' title='Show Calendar' src='${assetPath(src: 'calendar.png')}' "
out << "onclick=\"jQuery('#${attrs.id}').focus();\"/>"
}
用法类似于:
<ns:dateField id="someUniqueID" name="fieldName" />
【讨论】:
正如丹尼尔所说,您可以编写自己的标签,这也是我所做的。我还要注意html输入标签有一个日期类型。
<input type="date" id="some-id">
这对我有用,而不是创建新标签的所有工作。 html 输入的缺点(在我看来)是某些功能没有完整的浏览器支持(最小,最大)。至少他们不为我工作。此外,如果您在某些地方使用 jQuery ui 而在其他地方使用 html,则在 post 请求中提交的数据会有所不同。 输入标签会给你类似 yyyy-mm-dd 而 jQuery 为您提供类似 mm-dd-yyyy 的内容。
【讨论】: