Wt::WValidator Class Reference

A validator is used to validate user input according to pre-defined rules. More...

#include <Wt/WValidator>

Inheritance diagram for Wt::WValidator:

Inheritance graph
[legend]

List of all members.

Public Types

enum  State { Invalid, InvalidEmpty, Valid }
 The state in which validated input can exist. More...

Public Member Functions

 WValidator (WObject *parent=0)
 Create a new validator.
 WValidator (bool mandatory, WObject *parent=0)
 Create a new validator.
 ~WValidator ()
 Destructor.
void setMandatory (bool how)
 Set if input is mandatory.
bool isMandatory () const
 Returns if input is mandatory.
void setInvalidBlankText (const WString &text)
 Set 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 void fixup (WString &input) const
 This function attempts to change input to be valid according to the validator's rules.
virtual State validate (WString &input, int &pos) const
 Validate the given input.
virtual void createExtConfig (std::ostream &config) const
 Provide Ext-compatible config options for client-side validation.

Protected Member Functions

virtual std::string javaScriptValidate (const std::string &jsRef) const
 Creates a Javascript expression that validates the input.
virtual std::string inputFilter () const
 Returns a regular expression that filters input.


Detailed Description

A validator is used to validate user input according to pre-defined rules.

A validator may be associated with a form widget using WFormWidget::setValidator().

The validator validates the user input. A validator may have a split implementation to provide both validation at the client-side (which gives instant feed-back to the user while editing), and server-side validation (to be sure that the client was not tampered with).

This WValidator only checks that mandatory fields are not empty. This class is reimplemented in WDateValidator, WIntValidator, WDoubleValidator, WLengthValidator and WRegExpValidator. All these validators provibe both client-side and server-side validation.

If these validators are not suitable, you can inherit from this class, and provide a suitable implementation to validate() which does the server-side validation. If you want to provide client-side validation for your own validator, you may also reimplement javaScriptValidate().

See also:
WFormWidget

Member Enumeration Documentation

The state in which validated input can exist.

Enumerator:
Invalid  The input is invalid.
InvalidEmpty  The input is invalid (emtpy and mandatory).
Valid  The input is valid.


Constructor & Destructor Documentation

Wt::WValidator::WValidator ( bool  mandatory,
WObject parent = 0 
)

Create a new validator.

Indicate whether input is mandatory.

See also:
setMandatory(bool)

Wt::WValidator::~WValidator (  ) 

Destructor.

The validator automatically removes itself from all formfields to which it was associated.


Member Function Documentation

void Wt::WValidator::setMandatory ( bool  how  ) 

Set if input is mandatory.

When an input is not mandatory, then an empty field is always valid.

void Wt::WValidator::setInvalidBlankText ( const WString text  ) 

Set message to display when a mandatory field is left blank.

The default value is "This field cannot be empty".

WString Wt::WValidator::invalidBlankText (  )  const

Returns the message displayed when a mandatory field is left blank.

See also:
setInvalidBlankText(const WString&)

void Wt::WValidator::fixup ( WString input  )  const [virtual]

This function attempts to change input to be valid according to the validator's rules.

In general the function needs not to change the input into a valid input. The default implementation does nothing. But it may help the user in getting its input right.

WValidator::State Wt::WValidator::validate ( WString input,
int &  pos 
) const [virtual]

Validate the given input.

This function returns the current validation state of the input. The default implementation only checks whether a mandatory field is not left blank.

The function can change both input and pos (the cursor position) if required (but none of the current implementations do so).

Reimplemented in Wt::WDateValidator, Wt::WDoubleValidator, Wt::WIntValidator, Wt::WLengthValidator, and Wt::WRegExpValidator.

std::string Wt::WValidator::javaScriptValidate ( const std::string &  jsRef  )  const [protected, virtual]

Creates a Javascript expression that validates the input.

The JavaScript expression should evaluate to an object with two fields: a boolean valid, and a message that indicates the problem if not valid.

Return an empty string if you are not provide the client-side validation.

See also:
inputFilter()

Reimplemented in Wt::WDateValidator, Wt::WDoubleValidator, Wt::WIntValidator, Wt::WLengthValidator, and Wt::WRegExpValidator.

std::string Wt::WValidator::inputFilter (  )  const [protected, virtual]

Returns a regular expression that filters input.

The returned regular expression is used to filter keys presses. The regular expression should accept valid single characters.

For details on valid regular expressions, see WRegExpValidator. As an example, "[0-9]" would only accept numbers as valid input.

The default implementation returns an empty string, which does not filter any input.

See also:
javaScriptValidate()

Reimplemented in Wt::WIntValidator.


Generated on Fri Sep 12 17:01:15 2008 for Wt by doxygen 1.5.6