Wt  4.11.1
Loading...
Searching...
No Matches
Wt::WDateValidator Class Reference

A validator for date input. More...

#include <Wt/WDateValidator.h>

Inheritance diagram for Wt::WDateValidator:
[legend]

Public Member Functions

 WDateValidator ()
 Creates a date validator.
 WDateValidator (const WDate &bottom, const WDate &top)
 Creates a date validator.
 WDateValidator (const WString &format)
 Creates a date validator.
 WDateValidator (const WString &format, const WDate &bottom, const WDate &top)
 Creates a date validator.
void setBottom (const WDate &bottom)
 Sets the bottom of the valid date range.
const WDatebottom () const
 Returns the bottom date of the valid range.
void setTop (const WDate &top)
 Sets the top of the valid date range.
const WDatetop () const
 Returns the top date of the valid range.
void setFormat (const WString &format)
 Sets the date format used to parse date strings.
virtual WString format () const override
 Returns the format string used to parse date strings.
void setFormats (const std::vector< WString > &formats)
 Sets the date formats used to parse date strings.
const std::vector< WString > & formats () const
 Returns the date formats used to parse date strings.
virtual Result validate (const WString &input) const override
 Validates the given input.
void setInvalidNotADateText (const WString &text)
 Sets the message to display when the input is not a date.
WString invalidNotADateText () const
 Returns the message displayed when the input is not a date.
void setInvalidTooEarlyText (const WString &text)
 Sets the message to display when the date is earlier than bottom.
WString invalidTooEarlyText () const
 Returns the message displayed when date is too early.
void setInvalidTooLateText (const WString &text)
 Sets the message to display when the date is later than top.
WString invalidTooLateText () const
 Returns the message displayed when the date is too late.
virtual std::string javaScriptValidate () const override
 Creates a Javascript object that validates the input.
Public Member Functions inherited from Wt::WValidator
 WValidator (bool mandatory=false)
 Creates a new validator.
virtual ~WValidator ()
 Destructor.
void setMandatory (bool how)
 Sets if input is mandatory.
bool isMandatory () const
 Returns if input is mandatory.
void setInvalidBlankText (const WString &text)
 Sets the message to display when a mandatory field is left blank.
WString invalidBlankText () const
 Returns the message displayed when a mandatory field is left blank.
virtual std::string inputFilter () const
 Returns a regular expression that filters input.

Additional Inherited Members

Public Types inherited from Wt::WValidator
typedef ValidationState State
 Typedef for enum Wt::ValidationState.

Detailed Description

A validator for date input.

This validator accepts input in the given date format, and optionally checks if the date is within a given range.

The format string used for validating user input are the same as those used by WDate::fromString().

Usage example:

Wt::WLineEdit *lineEdit = addWidget(std::make_unique<Wt::WLineEdit>());
auto validator = std::make_shared<Wt::WDateValidator>();
validator->setFormat("dd-MM-yyyy");
lineEdit->setValidator(validator);
lineEdit->setText("01-03-2008");
void setValidator(const std::shared_ptr< WValidator > &validator)
Sets a validator for this field.
Definition WFormWidget.C:324
A widget that provides a single line edit.
Definition WLineEdit.h:76
virtual void setText(const WString &text)
Sets the content of the line edit.
Definition WLineEdit.C:55

i18n

The strings used in the WDateValidator can be translated by overriding the default values for the following localization keys:

  • Wt.WDateValidator.DateTooEarly: The date must be after {1}
  • Wt.WDateValidator.DateTooLate: The date must be before {1}
  • Wt.WDateValidator.WrongDateRange: The date must be between {1} and {2}
  • Wt.WDateValidator.WrongFormat: Must be a date in the format '{1}'

Constructor & Destructor Documentation

◆ WDateValidator() [1/4]

Wt::WDateValidator::WDateValidator ( )

Creates a date validator.

The validator will accept dates using the current locale's format.

See also
WLocale::currentLocale()

◆ WDateValidator() [2/4]

Wt::WDateValidator::WDateValidator ( const WDate & bottom,
const WDate & top )

Creates a date validator.

The validator will accept dates in the indicated range using the current locale's format.

See also
WLocale::currentLocale()

◆ WDateValidator() [3/4]

Wt::WDateValidator::WDateValidator ( const WString & format)

Creates a date validator.

The validator will accept dates in the date format format.

The syntax for format is as in WDate::fromString()

◆ WDateValidator() [4/4]

Wt::WDateValidator::WDateValidator ( const WString & format,
const WDate & bottom,
const WDate & top )

Creates a date validator.

The validator will accept only dates within the indicated range bottom to top, in the date format format.

The syntax for format is as in WDate::fromString()

Member Function Documentation

◆ format()

virtual WString Wt::WDateValidator::format ( ) const
overridevirtual

Returns the format string used to parse date strings.

See also
setFormat()

Reimplemented from Wt::WValidator.

◆ invalidNotADateText()

WString Wt::WDateValidator::invalidNotADateText ( ) const

Returns the message displayed when the input is not a date.

See also
setInvalidNotADateText(const WString&)

◆ invalidTooEarlyText()

WString Wt::WDateValidator::invalidTooEarlyText ( ) const

Returns the message displayed when date is too early.

See also
setInvalidTooEarlyText(const WString&)

◆ invalidTooLateText()

WString Wt::WDateValidator::invalidTooLateText ( ) const

Returns the message displayed when the date is too late.

See also
setInvalidTooLateText(const WString&)

◆ javaScriptValidate()

std::string Wt::WDateValidator::javaScriptValidate ( ) const
overridevirtual

Creates a Javascript object that validates the input.

The JavaScript expression should evaluate to an object which contains a validate(text) function, which returns an object that contains the following two fields:

  • fields: a boolean valid,
  • a message that indicates the problem if not valid.

Returns an empty string if the validator does not provide a client-side validation implementationq.

See also
inputFilter()

Reimplemented from Wt::WValidator.

◆ setBottom()

void Wt::WDateValidator::setBottom ( const WDate & bottom)

Sets the bottom of the valid date range.

The default is a null date constructed using WDate().

◆ setFormat()

void Wt::WDateValidator::setFormat ( const WString & format)

Sets the date format used to parse date strings.

See also
WDate::fromString()

◆ setInvalidNotADateText()

void Wt::WDateValidator::setInvalidNotADateText ( const WString & text)

Sets the message to display when the input is not a date.

The default message is "The date must be of the format {1}", with as first argument the format string.

◆ setInvalidTooEarlyText()

void Wt::WDateValidator::setInvalidTooEarlyText ( const WString & text)

Sets the message to display when the date is earlier than bottom.

Depending on whether bottom() and top() are defined (see WDate::isNull()), the default message is "The date must be between {1} and {2}" or "The date must be after {1}".

◆ setInvalidTooLateText()

void Wt::WDateValidator::setInvalidTooLateText ( const WString & text)

Sets the message to display when the date is later than top.

Depending on whether bottom() and top() are defined, the default message is "The date must be between {1} and {2}" or "The date must be before {2}".

◆ setTop()

void Wt::WDateValidator::setTop ( const WDate & top)

Sets the top of the valid date range.

The default is a null date constructed using WDate().

◆ validate()

WValidator::Result Wt::WDateValidator::validate ( const WString & input) const
overridevirtual

Validates the given input.

The input is considered valid only when it is blank for a non-mandatory field, or represents a date in the given format, and within the valid range.

Reimplemented from Wt::WValidator.