Diskuze: JQUERY select text
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 11 zpráv z 11.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.


Máš na mysli, že dotiahneš zo serveru do input type text nejakú hodnotu a keď užívateľ na ten vyplnený input klikne, tak sa označí celý text?
Ne, ze serveru mi přijdou data, která já naplním a potom potřebuji, když mám directivu na selekci, tak aby mně označil celá data. To value co jsem tam doplnil.
Čiže sa to nemá označiť po kliknutí na input, ale samo, hneď ako sa načíta value inputu zo serveru?
dá se říci že ano, nevím co je dříve, zda tato direktiva nebo jiné, které se tam dají nebo focus, ale mělo by se to označit. U text fieldu se mi to už nějak povedlo, jen se to snažím naučit ještě dateField.
Tak sem daj časti kódu. Jeden kde sa ti to podarilo, nech vidím ako si na to išiel, a druhý kde ti to nefunguje, nech vidím konkrétnejšie o čo sa pokúšaš.
Zde je napsaná ta direktiva:
directive('selectMe', function($timeout, $parse) {
return {
//scope: true, // optionally create a child scope
link: function(scope, element, attrs) {
// console.log('element', element);
// console.log('attrs', attrs);
var model = $parse(attrs.selectMe),
initValue = false;
scope.$watch(model, function(value) {
if(value === true) {
$timeout(function() {
initValue = true;
if(element[0].classList.contains('date-field')){
element[0].children[0].select(); // asi nefunkční
}
else if(element[0].classList.contains('time-field')){
element[0].children[0].children[0].select(); // asi nefunkční
}
else{
element[0].select(); // funkční
}
});
} else if (value === false && initValue) {
$timeout(function() {
element[0].blur();
});
}
})
}
};
}).
tak z jQuery je použit $timeout a .select(), jinak jsem nebyl schopen toho docílit.
Hm. Ale jQuery nemá timeout. Jedine, že by si používal ešte aj nejaký plugin do jQuery. Čo je však naprosto zbytočné. Nie len ten plugin, ešte máš ten kód v timeout vnorený zbytočne. A select metóda nad input elementami je tiež natívna a netreba na ňu jQuery. A korunou toho je, že miešať jQuery s frameworkom ktorý tiež manipuluje DOM model, je celkovo zlý nápad... Celý tento kód tak nemá logiku:
if(value === true) {
$timeout(function() {
initValue = true;
if(element[0].classList.contains('date-field')){
element[0].children[0].select(); // asi nefunkční
}
else if(element[0].classList.contains('time-field')){
element[0].children[0].children[0].select(); // asi nefunkční
}
else{
element[0].select(); // funkční
}
});
} else if (value === false && initValue) {
$timeout(function() {
element[0].blur();
});
}
})
}
A last but not least, element.select() metóda funguje LEN S input type text a textarea. Takže vynechaj timeout, vynechaj pokusy použiť select nad date či time inputmi a malo by to fungovať. Skús a napíš.
Tak som sa pozrel do dokumentácie a je to tak. $timeout je AngularJS servis, a select() he natívna JS metóda nad vhodnými inputmi, oboje nemá nič spoločné s jQuery a zdá sa, že všetko čo robíš zle, je že sa pokúšaš o select nad nevhodnými inputmi. Neviem to určite, nevidel som celý kód, usudzujem to len z tých tried date-field a time-field.
Zobrazeno 11 zpráv z 11.