×
COOKIES
Prezeraním tejto stránky dochádza k spracovaniu cookies. Spracovaniu cookies zabránite v nastaveniach internetového prehliadača alebo nezobrazovaním tejto stránky v internetovom prehliadači.
Vytvárame riešenia

Vlastnosť intermediateChanges v data-dojo-props (Dojo)

Pri práci s formulármi vo frameworku Dojo je možné vo widgetoch v atribúte data-dojo-props používať zápis intermediateChanges: true. Tento zápis definuje ako bude daný widget reagovať na interakciu používateľa.
Zadaním zápisu intermediateChanges: true sa zmení udalosť change na udalosť keydown. Ak nie je uvedený zápis intermediateChanges: true, udalosť change funguje nasledovne. Kliknutí do poľa pre editáciu (focus) sa zistí aktuálna hodnota. Kliknutím mimo poľa pre editáciu (blur) sa porovná aktuálna hodnota poľa s hodnotou, ktorá bola pri kliknutí na editáciu. Ak sú hodnoty rovnaké, udalosť change sa nespustí. Ak sú hodnoty rozdielne, udalosť change sa aktivuje.
Ak je použitý zápis intermediateChanges: true, pole pre editáciu reaguje už na stlačenie akéhokoľvek klávesa a nečaká až na kliknutie mimo poľa (blur, resp. stratenie focusu). Toto správanie je demonštrované na nasledujúcom príklade.
Príklad: Obsah sekcie HTML.
1
2
3
4
5
6
7
<input id="test1" type="text" name="demo1" value="demo1"
data-dojo-type="dijit/form/TextBox"
data-dojo-props="intermediateChanges: true"/>
<br>
<input id="test2" type="text" name="demo2" value="demo2"
data-dojo-type="dijit/form/TextBox"
data-dojo-props="intermediateChanges: false"/>
Príklad: Obsah elementu <script>.
1
2
3
4
5
6
7
8
9
10
11
12
13
require(["dojo/ready", "dojo/on", "dijit/registry", "dojo/parser"],
function(ready, on, registry) {
ready(function() {
var input1 = registry.byId("test1");
var input2 = registry.byId("test2");
on(input1, "change", function() {
console.log("Input ID 1");
});
on(input2, "change", function() {
console.log("Input ID 2");
});
});
});
Prvý element <input> reaguje na stlačenie klávesa, druhý element <input> až na jeho opustenie (napríklad stlačenie tlačidla myši nad prvým elementom <input>). Zápis intermediateChanges: true je aktívny až s aktivovaním udalosti change. Rovnaký efekt je možné dosiahnuť aj nasledujúcim spôsobom.
Príklad: Obsah sekcie HTML.
1
2
3
<input type="text" name="txt" data-dojo-id="field"
data-dojo-type="dijit/form/TextBox"
data-dojo-props="intermediateChanges: true">
Príklad: Obsah elementu <script>.
1
2
3
4
5
6
7
8
9
10
11
12
require(["dojo/ready", "dojo/_base/lang", "dojo/parser"],
function(ready, lang) {
ready(function() {
field = lang.mixin(field, {
onChange: showValues
});
function showValues(value) {
console.log(value);
}
});
});
Rovnakú funkcionalitu je možné vytvoriť aj bez aplikovania zápisu intermediateChanges: true.
Príklad: Obsah sekcie HTML.
1
2
3
4
5
<input id="test1" type="text" name="demo1" value="demo1"
data-dojo-type="dijit/form/TextBox"/>
<br>
<input id="test2" type="text" name="demo2" value="demo2"
data-dojo-type="dijit/form/TextBox"/>
Príklad: Obsah elementu <script>.
1
2
3
4
5
6
7
8
9
10
11
12
13
require(["dojo/ready", "dojo/on", "dijit/registry", "dojo/parser"],
function(ready, on, registry) {
ready(function() {
var input1 = registry.byId("test1");
var input2 = registry.byId("test2");
on(input1, "keydown", function() {
console.log("Input ID 1");
});
on(input2, "change", function() {
console.log("Input ID 2");
});
});
});
V tomto prípade bol zápis intermediateChanges: true nahradený za udalosť keydown. Z oboch elementov <input> bol odstránený zápis intermediateChanges. Okrem udalosti keydown je možné použiť aj udalosť keypress.

Záver

V prípade, že používateľ nechce aplikovať udalosť keydown, môže zápis intermediateChanges: false vynechať.
Autor: Matej Lednár
Dátum: 6.4.2013
Kategória: Dojo
Značky: programovanie, dojo, keydown, keypress, change, intermediatechanges, dijit/registry, dojo/on, data-dojo-id


Dojo,programovanie,dojo,keydown,keypress,change,intermediateChanges,dijit/registry,dojo/on,data-dojo-id
Žiadna časť tohto článku nesmie byť reprodukovaná bez uvedenia autora a URL na túto stránku.
Viac informácií nájdete v sekcii O projekte.

Komentáre

Článok neobsahuje zatiaľ žiadne komentáre.

Pridať komentár

Meno (povinné)
Web
Správa (povinné)
Odoslať
Od najnovších