blob: 177a367b4faf982dd3b879e1008d5508efc775d9 [file] [log] [blame]
Copybara botbe50d492023-11-30 00:16:42 +01001<p>The formatfield component formats an input field using
2 language sensitive number formatting. It acts as a "pluggable"
3 component. It can be added to a <code>mdl-textfield</code> component or to
4 a <code>&lt;input&gt</code> element.
5</p>
6
7<style>
8 .mdl-data-table .mdl-textfield {
9 width: auto;
10 }
11</style>
12<table class="mdl-data-table mdl-js-data-table mdl-shadow--2dp" style="margin-top: 16px;">
13<thead>
14<tr>
15 <th class="mdl-data-table__cell--non-numeric">Language</th>
16 <th class="mdl-data-table__cell--non-numeric">Input</th>
17</tr>
18</thead>
19<tbody>
20<tr>
21 <td class="mdl-data-table__cell--non-numeric" id="browser-lang">Browser language</td>
22 <td class="mdl-data-table__cell--non-numeric">
23 <div class="mdl-textfield mdl-js-textfield mdlext-js-formatfield" id="sample2-component">
24 <input class="mdl-textfield__input" type="text" pattern="-?[0-9, ]*([\.,][0-9]+)?"
25 id="sample2-input" value="1234.5">
26 <label class="mdl-textfield__label" for="sample2-input">Number...</label>
27 <span class="mdl-textfield__error">Input is not a number!</span>
28 </div>
29 <div id="sample2-unformatted"></div>
30 </td>
31</tr>
32<tr>
33 <td class="mdl-data-table__cell--non-numeric">nb-NO</td>
34 <td class="mdl-data-table__cell--non-numeric">
35 <div class="mdl-textfield mdl-js-textfield mdlext-js-formatfield"
36 data-formatfield-options="{'locales': 'nb-NO'}">
37
38 <input class="mdl-textfield__input" type="text" pattern="-?[0-9 ]*([\.,][0-9]+)?" value="1234.5">
39 <label class="mdl-textfield__label">Number...</label>
40 <span class="mdl-textfield__error">Input is not a number!</span>
41 </div>
42 </td>
43</tr>
44<tr>
45 <td class="mdl-data-table__cell--non-numeric">en-GB</td>
46 <td class="mdl-data-table__cell--non-numeric">
47 <div class="mdl-textfield mdl-js-textfield mdlext-js-formatfield" data-formatfield-options="{'locales': 'en-GB'}">
48 <input class="mdl-textfield__input" type="text" pattern="-?[0-9]*(\.[0-9]+)?" value="1234.5">
49 <label class="mdl-textfield__label">Number...</label>
50 <span class="mdl-textfield__error">Input is not a number!</span>
51 </div>
52 </td>
53</tr>
54<tr>
55 <td class="mdl-data-table__cell--non-numeric">nb-NO, integer</td>
56 <td class="mdl-data-table__cell--non-numeric">
57 <div class="mdl-textfield mdl-js-textfield mdlext-js-formatfield">
58 <input class="mdl-textfield__input" type="text" pattern="-?[0-9]*(\.[0-9]+)?"
59 data-formatfield-options="{'locales': 'nb-NO', 'minimumFractionDigits': 0,'maximumFractionDigits': 0}" value="1234.5">
60
61 <label class="mdl-textfield__label">Number...</label>
62 <span class="mdl-textfield__error">Input is not a number!</span>
63 </div>
64 </td>
65</tr>
66<tr>
67 <td class="mdl-data-table__cell--non-numeric">Percent. Input not supported</td>
68 <td class="mdl-data-table__cell--non-numeric">
69 <div class="mdl-textfield mdl-js-textfield mdlext-js-formatfield">
70 <input class="mdl-textfield__input" type="text" readonly
71 data-formatfield-options="{'locales': 'en-GB', 'style': 'percent'}" value="0.20">
72 <label class="mdl-textfield__label">Number...</label>
73 </div>
74 </td>
75</tr>
76<tr>
77 <td class="mdl-data-table__cell--non-numeric">Currency. Input not supported</td>
78 <td class="mdl-data-table__cell--non-numeric">
79 <div class="mdl-textfield mdl-js-textfield mdlext-js-formatfield">
80 <input class="mdl-textfield__input" type="text" readonly
81 data-formatfield-options="{'locales': 'nb-NO', 'style': 'currency', 'currency': 'NOK'}" value="1234.5">
82 <label class="mdl-textfield__label">Number...</label>
83 </div>
84 </td>
85</tr>
86<tr>
87 <td class="mdl-data-table__cell--non-numeric">Input</td>
88 <td class="mdl-data-table__cell--non-numeric">
89 <input class=" mdlext-js-formatfield" type="text"
90 data-formatfield-options="{'locales': 'nb-NO'}" value="1234.5">
91 </td>
92</tr>
93</tbody>
94</table>
95
96<script>
97 (function() {
98 'use strict';
99 window.addEventListener('load', function() {
100 var lang = navigator.languages
101 ? navigator.languages[0]
102 : navigator.language || navigator.userLanguage;
103
104 document.querySelector('#browser-lang').innerText = 'Browser language (' + lang + ')';
105
106 var formatfieldComponent = document.querySelector('#sample2-component');
107 formatfieldComponent.querySelector('input').addEventListener('blur', function () {
108 var unformatted = document.querySelector('#sample2-unformatted');
109 unformatted.innerText = 'Unformatted: ' + formatfieldComponent.MaterialExtFormatfield.getUnformattedValue();
110 });
111 });
112 }());
113</script>
114