dijit/form/CurrencyTextBox

Authors: Becky Gibson
Doug Hays
Bill Keese
Craig Riecke
Developers:Doug Hays, Bill Keese
since:V1.0

CurrencyTextBox widgets inherit all the attributes and behaviors of the NumberTextBox widget but are specialized for input monetary values, much like the currency type in spreadsheet programs.

Usage

  • The value attribute is a native JavaScript floating point number.

    This means that you can easily build CurrencyTextBox widgets for a wide range of currencies without having to set a different value for each currency format.

  • The optional boolean fractional property of the constraints object attribute can be set to require/refuse fractional input.

Examples

Declarative example

In this example using USD, both dollars and cents are required.

require(["dojo/parser", "dijit/form/CurrencyTextBox"]);
<label for="income1">U.S. Dollars</label>
<input type="text" name="income1" id="income1" value="54775.53" required="true"
    data-dojo-type="dijit/form/CurrencyTextBox"
    data-dojo-props="constraints:{fractional:true},
    currency:'USD',
    invalidMessage:'Invalid amount. Cents are required.'" />

Programmatic example

In this example using euros with German formatting, the invalid message contains a custom formatted example value.

require(["dojo/ready", "dojo/currency", "dijit/form/CurrencyTextBox"], function(ready, currency, CurrencyTextBox){
    ready(function(){
        var example = currency.format(54775.53, {locale: 'de-de', currency: "EUR"});
        var props = {
            value: 54775.53,
            lang: 'de-de',
            currency: "EUR",
            invalidMessage: "Invalid amount.  Example: " + example
        };
        new CurrencyTextBox(props, "eurde");
    });
});
<label for="eurde">euros (lang: de-de):</label>
<input id="eurde" />EUR

Accessibility

See the Accessibility Section in dijit/form/ValidationTextBox