Date Picker

10 minutes to read Download PDF Edit

Introduction

A date picker is an input widget that can be used to display and edit date/time attributes. It takes into account the language setting to display a localized calendar.

General Properties

Date Format

The date format determines whether the date picker displays the date, time, date and time, or a custom variation of the linked attribute. This does not affect how data is stored; in all cases both a date and a time will be recorded. It merely affects how the data is displayed. How the date and/or time are formatted depends on the localization of the user viewing the data.

These are the possible values:

  • Date (this is the default)
  • Time
  • Date and time
  • Custom (see below for more details)

Custom Date Format

If you choose ‘Custom’ as the date format (see above) this property determines how the attribute value is formatted. The custom date format is a string that allows for any combination of symbols found in the table below. Any punctuation will be rendered literally.

Symbol No. Example Description
G 1 AD Era
y 1..n 2010 Year
M 1..2 09 Month
M 3 Sept
M 4 September
w 1..2 27 Week of year
d 1..2 12 Day of month
D 1..3 93 Day of year
a 1 AM AM or PM
h 1..2 11 Hour (1-12)
H 1..2 13 Hour (0-23)
k 1..2 10 Hour (1-24)
K 1..2 0 Hour (0-11)
m 1..2 59 Minute, use one or two for zero padding
s 1..2 12 Second, use one or two for zero padding
S 1..3 153 Milliseconds
E 1..3 Thu Day of week
E 4 Thursday Day of week
z 1..3 PST Time zone
z 4 Pacific Standard Time Time zone
Z 4 GMT-04:0 0 Time zone offset

Placeholder Text

The placeholder text is shown if the date attribute is empty. It can be used to give the end user a hint as to the expected format. Note: placeholder texts will not work if a native date picker is available (e.g. iOS and Android versions 4.0 and higher).

Validation Properties

{% markdown %} The **Validation type** and **Validation message** properties were introduced in 7.6.0. They supersede the **Required** and **Required message** properties. {% endmarkdown %}

Validation Type

This property indicates whether this widget value should be validated and, if so, how. The possible options are no validation, a predefined validation, or a custom validation.

The possible values of a predefined validation are the following: * Required – all data types * E-mail – string * Positive number – decimal, float, integer, long * Date in the future – dateTime * Date in the past – dateTime

Custom validations are expressions that follow the Microflow expression syntax. Both $currentObject and $value are in a scope that refers to the current object and the current member value, respectively.

When a validation is set and it fails for this widget, a message will be shown when the user selects Save.

Default value: (none)

Validation Message

This property determines the message that is shown to the user if widget validation is enabled and has failed. This is a translable text (for more information, see Translatable Texts).

{% markdown %} For example, if an address field is required, the validation message for the text box of the address could be something like, "The address is required." {% endmarkdown %}

Required

This property indicates whether this widget must be filled in by the end user or not. If set to true, this widget cannot be left empty, and a message will be shown if the user selects Save.

Default value: False

Required Message

This property determines the message that is shown to the user if the widget is empty and the Required property is set to true. This is a translable text (for more inforamtion, see Translatable Texts).

{% markdown %} For example, if an address field is required, the required message for the text box of the address could be something like, "The address is required." {% endmarkdown %}

Data Source Properties

Attribute (path)

Many input widgets, like text boxes and drop-down widgets, can be connected to:

  1. an attribute of the entity of the data view that contains the widget
  2. an attribute of an entity associated with the data view entity by following one or more associations of type reference through the domain model.

In the first case we say the widget is connected to an attribute and in the second case to an attribute path.

An input widget connected to an attribute path must be read-only. The Modeler will check this for you.

Label properties

A label can be used to described the purpose of the widget to the user. The label is shown next to the widget in the user interface. If a label is configured, the widget will be rendered in the browser wrapped in a form group. See Bootstrap documentation.

Show label

This property determines whether the label is rendered and the widget is wrapped in a form group.

Default value: No

Label caption

This property is shown only when Show label is Yes. This property determines what text is rendered within a label.

Editability Properties

Editable

The editable property indicates whether the end user will be able to change the value displayed by the widget.

Value Description
Default The value is editable if security allows it (i.e. if the user that is signed in has write rights to the selected attribute).
Never The value is never editable.
Conditional The value is editable if the specified condition holds. (see below)
  • Default value: Default

Read-only style

This property determines how the widget is rendered if it is read-only.

Value Description
Set by data view Set to Control or Text by the containing data view.
Control Widget is displayed but disabled so the value cannot be modified.
Text Widget is replaced by a textual representation of the value.

Default value: Set by data view

Condition

The widget can be made editable only if the object of the data view that contains the widget satisfies the specificied criteria.

A practical example would be a personal details form in which the user must enter his marital status. In this case, you might wish to disable an input for the marriage date until the user indicates that he or she is married.

Based on Attribute Value

When selected, this enables the widget while a particular attribute has a certain value. Only Boolean and enumeration attributes can be used for this purpose.

Based on Expression
Added in Mendix 7.1.

When selected, this enables the widget while a provided expression evaluates to true. The object of the containg data view is available inside an expression as a $currentObject variable.

Note that the expression is evaluated in the browser, and hence, we advise against using “secret” values (like access keys) in it. In particular, we disallow usages of constants. Also, client-side expressions currently do not support all the functions that are available in the microflows. Please refer to an autocomplete list to know what functions are supported in your version.

Visibility Properties

Visible

By default, whether or not an element is displayed in the browser is determined by how the page is designed and the user’s roles within the application. However, the page can be configured to hide the element unless a certain condition is met.

Context

The widget can be made visible only if the object of the data view that contains the widget satisfies the specificied criteria.

A practical example would be a web shop in which the user must submit both billing and delivery information. In this case, you might not wish to bother the user with a second set of address input fields unless they indicate that the billing address and delivery address are not the same. You can accomplish this by making the delivery address fields conditionally visible based on the Boolean attribute SameBillingAndDeliveryAddress.

Based on Attribute Value

When selected, this shows the widget while a particular attribute has a certain value. Only boolean and enumeration attributes can be used for this purpose.

Based on Expression
Added in Mendix 7.1.

When selected, this shows the widget while a provided expression evaluates to true. The object of the containing data view is available inside an expression as a $currentObject variable.

Note that the expression is evaluated in the browser, and hence, we advise against using “secret” values (like access keys) in it. In particular, we disallow usages of constants. Also, client-side expressions currently do not support all the functions that are available in the microflows. Please refer to an autocomplete list to know what functions are supported in your version.

Module Roles

The widget can be made visible to a subset of the user roles available in your application. When activated, this setting will render the widget invisible to all users that are not linked to one of the selected user roles.

Events Properties

On change

The on-change property optionally specifies a microflow that will be executed when leaving the widget after the value has been changed.

On change settings

The on change settings specify what parameters are passed to the microflow, whether a progress bar is shown and more.

See Starting Microflows.

On enter

The on-enter property optionally specifies a microflow that will be executed when the widget is entered, either by using the tab key or by clicking it with the mouse.

On enter settings

The on enter settings specify what parameters are passed to the microflow, whether a progress bar is shown and more.

See Starting Microflows.

On leave

The on-leave property optionally specifies a microflow that will be executed when leaving the widget, either by using the tab key or by clicking another widget.

On leave settings

The on leave settings specify what parameters are passed to the microflow, whether a progress bar is shown and more.

See Starting Microflows.

Common Properties

Name

The internal name of the widget. You can use this to give sensible names to widgets. The name property also appears in the generated HTML: the widget DOM element automatically includes the class ‘mx-name-{NAME}’, which can be useful for Selenium testing.

Class

The class property allows you to specify a cascading style sheet (CSS) class for the widget. This class will be applied to the widget in the browser and the widget will get the corresponding styling. The class should be a class from the theme that is used in the project. It overrules the default styling of the widget.

Note that the styling is applied in the following order: 1. Default styling defined by the theme the project uses. 2. The 'Class' property of the widget. 3. The 'Style' property of the widget.

Style

The style property allows you to specify additional CSS styling. If a class is also specified, this styling is applied after the class.

background-color:blue; This will result in a blue background

Tab index

The tab index influences the order in which the end user navigates through the page using the tab key. By default tab indices are zero and the tab order is determined automatically by the client system. A value of minus one (-1) means that the widget will be skipped when tabbing through the page.

Default value: 0

Copyright © Mendix. All rights reserved. | Mendix.com | Terms of Use | Privacy Policy