将Wickets DateTimeField元素转换为Bootstrap datetimepicker

时间:2017-05-19 05:25:50

标签: twitter-bootstrap wicket bootstrap-datepicker eonasdan-datetimepicker

我正在尝试将我的wicket应用程序DateTimeField元素转换为Bootstrap Datetimepicker。我是Wicket框架的新手。

HTML:

<span wicket:id="dateValue" style="width:400px">Date editor</span>
<script type="text/javascript">
    jQuery(function () {
        var idDate = jQuery('[name*="dateValue"]').attr('id');
        console.log("idDate:"+idDate);
        jQuery('#' +idDate).datetimepicker(
            {
                useCurrent: false,
                collapse: true
            }
        );
    });
</script>

爪哇:

private final DateTimeField valueDatePicker;
valueDatePicker = addValueDatePicker(this, "dateValue", new Model<Date>());

private DateTimeField addValueDatePicker(final MarkupContainer parent, final String id, final IModel<Date> model)
{
    final DateTimeField result = new DateTimeField(id, model) {
        private static final long serialVersionUID = 1L;

        /** {@inheritDoc} */
        @Override
        protected void onConfigure()
        {
            boolean required = true;
            setVisibilityAllowed(required);
            setRequired(required);
        }

        @Override
        protected boolean use12HourFormat()
        {
            return false;
        }

        /** {@inheritDoc} */
        @Override
        protected DateTextField newDateTextField(final String id, final PropertyModel<Date> dateFieldModel)
        {
            return DateTextField.forDatePattern(id, model, BooleanUtils.isFalse(TimeZoneUtility
                    .getUSDateFormatConfig()) ? DateUtility.DATE_NON_US_FORMAT : DateUtility.DATE_FORMAT);
        }
    };
    result.setOutputMarkupId(true);
    parent.add(result);
    return result;
}

它有效,但只是部分。即DateTimeField提供日期字段文本框,现在显示bootstrap multiselect calerndar,但仍显示日历,小时和分钟文本框。我想摆脱日历,小时和分钟文本框,只显示日期字段文本框。

2 个答案:

答案 0 :(得分:1)

您是否尝试过使用DateTextField代替DateTimeField?通过这种方式,您可以拥有一个字段,例如dd / MM / yyyy。 查看示例here,您可以在其中看到带有JQuery日历的自定义DateTextField的示例。

答案 1 :(得分:1)