我使用的是Grails 4,我的图书域名有一个名为publishDate的日期字段。我在编辑视图中使用来显示输入字段。Fields插件在书中日期字段的html中显示3个下拉框,其中包含日、月和年。
您能教我如何用jQuery UI日期选择器替换Grails日期选择器吗?
谢谢!
发布于 2021-08-14 18:47:21
如果旧的社区插件还在运行,你可以搜索他们的代码来找到你的解决方案。由于Grails不再支持其社区,您可以尝试在github中查找较旧的插件。这将是您最快的解决方案。
发布于 2021-08-18 20:19:14
如果这对你或其他遇到这个问题的人有帮助:我们所做的就是创建我们自己的标签来完成这个任务。您必须对其进行一些调整,使其适用于您,并包含来自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" />发布于 2021-08-20 12:10:26
正如Daniel所说的,你可以编写你自己的标签,这也是我所做的。我还想指出的是,html输入标记具有日期类型。
<input type="date" id="some-id">这对我来说很有效,而不是做创建新标签的所有工作。html输入的缺点(在我看来)是有些功能没有完全的浏览器支持(最小、最大)。至少他们没有为我工作。另外,如果您在某些地方使用html,而在其他地方使用jQuery,那么在post请求中提交数据的方式会有所不同。input标记会给出类似yyyy-mm-dd的内容,而jQuery会给出类似mm-dd-yyyy的内容。
https://stackoverflow.com/questions/68781473
复制相似问题