Преобразование элемента калитки DateTimeField в Bootstrap datetimepicker

Я пытаюсь преобразовать элемент приложения 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 предоставляет текстовое поле для поля даты, которое теперь отображает загрузочный мультиселектор calerndar, однако все еще отображает текстовые поля календаря, часов и минут. Я хотел избавиться от текстовых полей календаря, часов и минут и просто показать только текстовое поле даты.

2 ответа

Вы пытались использовать DateTextField вместо DateTimeField? Таким образом, вы можете иметь одно поле, например, с dd/MM/yyyy. Посмотрите на пример здесь, где вы можете увидеть пример пользовательского DateTextField с календарем JQuery.

Другие вопросы по тегам