Grails:禁用g:datePicker

时间:2012-03-30 06:54:44

标签: grails tags datepicker

如何在页面加载时禁用g:datePicker?

当变量(isCurrent)为真时,假设代码禁用datePicker。

<g:if test="${!isCurrent}">
                    <g:datePicker name="endDate" precision="month" value="${projectInstance?.endDate}" years="${2005..2050}"/>
                </g:if>
                <g:else>
                    <g:datePicker name="endDate" precision="month" value="${projectInstance?.endDate}" years="${2005..2050}" disabled="disabled"/>
                </g:else>

3 个答案:

答案 0 :(得分:0)

disabled="disabled"是select not datepicker的属性。 Datepicker不会将该属性传递给您的选择标记。但是,您可以做的是使用javascript禁用您的选择。例如,如果您使用的是jQuery,则可以执行以下操作:

注意:在我的示例中,isCurrent是相应的字符串更改。将它放在datepicker标记之后的html主体中。

<script type="text/javascript">
    if ("${isCurrent}"=='true'){
       alert("${isCurrent}");
       $("#endDate_month").attr('disabled','disabled')
       $("#endDate_year").attr('disabled','disabled')               
    }
</script>

或直接使用select标签。

答案 1 :(得分:0)

你也可以计算机是否要在后备控制器中禁用日期选择器并将其传递给日期选择器标签。

view.gsp

<g:datePicker disabled="${diabled}" .... />

controllerView.groovy

def view = {
disabled = true
if (isCurrent)
   disabled = false
[disabled, disabled]  
}

上面的javascript调用也很好用

答案 2 :(得分:0)

请勿在&lt; g:else&gt;中创建日期选择器。只需创建一个隐藏的输入。如果您希望它看起来与禁用的日期选择器相同,则可以在没有输入元素的情况下构建它,因此它将仅显示。