- Poco F8 Ultra – forrónaci
- Samsung Galaxy S25 - végre van kicsi!
- Yettel topik
- One mobilszolgáltatások
- Fotók, videók mobillal
- Honor Magic7 Pro - kifinomult, költséges képalkotás
- Android alkalmazások - szoftver kibeszélő topik
- Xiaomi 17 - még mindig tart
- Google Pixel topik
- Huawei Watch Fit 5 Pro - jó forma
-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
-
Frissítve: 2014-02-25 10:20 Téma összefoglaló
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
sztanozs
veterán
Tisztában vagyok vele, jelenleg is egy webforms alkalmazáson dolgozom, ráadásul a legkisebb probléma vele, hogy webforms
. Banki project, múltkor nekem kellett deployolnom, ami abból állt, hogy a gépemre publisholt projectet átmásoltam a megadott mappába (egyelőre csak QA-ra, de productionbe is így megy
). Ugyanennél a cégnél közben írunk egy web api-t is, de hiába indul 0-ról, azt sem engedték core-ban írni, mert hogy nem lehet csakúgy telepíteni a core-t a szerverekre (ami elég béna kifogás, mert self-contained-ként simán mehetne oda). Ja, és ki fogja majd pecselni a szeveren (főleg, ha self contained)?
-
instantwater
addikt
Ezt általában a pénzügyekért felelős vezetők döntik el, nem a fejlesztők.
Ők rövid távon profitnövekedést akarnak elkönyvelni.
Nem számít, hogy a fejlesztés ezáltal lelassul, felvesznek még ember.
Aztán amikor néhány év múlva abszolút tarthatatlan a helyzet, akkor felvesznek egy egész új csapat fejlesztőt, hogy oltsa a tüzet, és tegyen meg bármit az ellen, hogy összeomoljon az egész.Ilyenkor van a kolléga által említett 25 év lemaradás lefaragása 15 re.
Ugyanakkor azt sem szabad elfelejteni, hogy ilyen nagy cégek inkább választják a többéves, de kiforrott, stabil, megfelelően supportált technológiát a néhány éves legújabb trenddel szemben.
-
hiperFizikus
senior tag
-
bandi0000
nagyúr
Ha az a cél, hogy a regisztrált felhasználó egyből be is legyen léptetve, akkor az API-d register action-je akár vissza is küldheti egyből a tokent (nem tudom, hogy oldod meg a logint, gondolom jwt-vel, azt visszaadhatja a register method is), de ez csak egy tipp így hirtelen, működni működik, de nem tudom hogy szokták ezt megoldani.
Igen ezen is gondolkodtam, talàn lehet ez lenne a legjobb kompromisszum
-
bandi0000
nagyúr
Kipróbáltam most a te validátorodat, és nekem jól működik.
Így néz ki a html:
<mat-form-field class="w-100"><mat-label>Name</mat-label><input type="text" id="name" formControlName="name" matInput placeholder="Enter category name" /><mat-error *ngIf="name.hasError('required')">Name is required.</mat-error><mat-error *ngIf="name.hasError('minlength')">Name must be at least 3 characters.</mat-error><mat-error *ngIf="name.hasError('containUpperCase')">Must conatin uppercase</mat-error></mat-form-field>És a ts-ben annyit csináltam, hogy beleraktam a te functionödet, meg hozzáadtam a formcontrolhoz:
name: new FormControl('', [Validators.required, Validators.minLength(3), this.containUpperCase]),Így üresen, és 3 karakter alatt csak a minlength hibát írja, containUpperCase-t meg utána (átneveztem containDigit-ről
).A name az egy sima getter, vissza adja a 'this.form.control.name'-et, így átláthatódd a html.
De így nem figyeli a dirty és pristine tulajdonságokat nem? Mármint ha belekattintassz a mezőbe, akkor nem ír ki hibát, sőt elvileg a a requiredre nem is fog hibát jelezni csak a form lesz invalid
-
bandi0000
nagyúr
Nemrég kezdtem el használni a materialt, tehát nem 100%, hogy én tudom jól, de "mat-error"-ból lehet több, abba kell belerakni az error-message-eket (szerkesztettem az előzőt, raktam be egy saját kódot).
Viszont itt most a ts file kéne, ahol megírtad a custom validatort.
Egyébként pl a minlength így van megírva:static minLength(minLength: number): ValidatorFn {
return (control: AbstractControl): ValidationErrors | null => {
if (isEmptyInputValue(control.value)) {
return null; // don't validate empty values to allow optional controls
}
const length: number = control.value ? control.value.length : 0;
return length < minLength ?
{'minlength': {'requiredLength': minLength, 'actualLength': length}} :
null;
};
}isEmpty ennyit csinál:
return value == null || value.length === 0;Az igazából ennyi:
export function containDigit(control: AbstractControl): { [key: string]: boolean } | null {
if(control.errors?.required || control.errors?.minlength || control.errors?.maxlength){return null; }
if (!/[A-Z]/.test(control.value) && environment.passwordContainDigit) {return {'containUpperCase': true }}
return null;}Akkor ír ki 2 hibaüzenetet amikor belekattintottam a mezőbe, de nem írtam semmit, nyilván olyankor required-re is lő, meg erre is, ezért próbálkoztam az első if-ben, megnézni, hogyha van már a required-re hiba, akkor ne is nézze ezt
-
bandi0000
nagyúr
Ha mutatsz kódot, kicsit könnyebb lenne. Írtad, hogy Materialt használsz, ott ha több hibaüzenet is van, akkor neked kell kezelned, hogy melyik mikor jelenjen meg, alapból csak annyit néz, hogy dirty || touched, és ha van hiba, akkor megjeleníti (ha több hiba van, akkor mindet). Neked megírnod mindegyik hibára, hogy melyik mikor jelenjen meg.
Illetve, ha már dirty || touched, és ezért mutatja a required hibát, akkor egyértelmű, hogy mutatja a "nincs e betű" hibát, mert ha üres, akkor nincs e betű
.Nekem pl van egy ilyenem:
<mat-form-field>
<mat-label>Name</mat-label>
<input type="text" id="name" formControlName="name" matInput />
<mat-error *ngIf="accountName.hasError('required')">Account name is required</mat-error>
<mat-error *ngIf="accountName.hasError('minlength')">Account name must be at least 3 characters</mat-error>
</mat-form-field>Itt a required akkor jelenik meg, ha dirty || touched, a minlength-es pedig akkor, ha 1 vagy 2 karakter van beírva, de ez a gyári minlength, itt megvan írva ez a viselkedés.
Igazából [ennyi]
egyenlőre még hunglish
de majd többnyelvűsítés a cél, igazából a gyári validatoroknál le van valahogy kezelve ez szerintem, mert pl egy üres mezőre nem írja ki, hogy kötelező, és email formátumnak meg kell felelnieDe akkor majd utánanézek, hogy lehet ezt normálisan kezelni
-
cattus
addikt
-
btz
addikt
Elvileg nem lesznek benne space-ek, így nem gond ennél a feladatnál, ha majd másik feledatnál kell alkalmaznom, akkor lehet hogy gondot okoz.
-
btz
addikt
Köszönöm a megoldást. Így már működik, amit szeretnék.
Egyetlen gond van vele, hogy az első klikknél nem csinál semmit, csak a második kattintás után kezdi törölni a div tartalmát. -
gepelek
csendes tag
Értem, de te az eltüntetést akarod gyakorolni, , az hogy iframe, vagy nem, tök mindegy, de sokkal egyszerűbb lenne ezeket csinálni, ha látnád rendesen a HTML-t. Majd amikor élesben csinálod, akkor elé rakod, hogy az iframe-ből válassz ki valamit.
Amúgy most látom, az előző azért nem megy, mert '.fa'-t írtál, nem kell elé a pont, az akkor kell, ha a querySelectorAll-t használod.
Már működik. Köszönöm a segítséget, amúgy mire gondoltál, hogy amikor azt írtad, hogy "de sokkal egyszerűbb lenne ezeket csinálni, ha látnád rendesen a HTML-t"?
-
gepelek
csendes tag
Arra az elemre gondolsz, ami a "fa" osztályú elemek közül a második? Ha igen, akkor azért nem megy, mert az elsőt választod ki. A getElementsByTagName("fa") egy tömböt ad vissza, te odaírtad a végére, hogy [0], így az első elemet választod ki (ugyanúgy, mint ahogy korábban az első képet választottad ki). Ha a másodikat szeretnéd, akkor [1]-t írj a végére.)
Egyébként miért jó ezeket iframe-en gyakorolni? azonkívül, hogy ott van előtte, hogy iframe.contentWindow, pontosan ugyanúgy megy, mintha a sima HTML-t változtatnád, csak akkor jobban látnád a HTML szerkezetet.
Sehogy se működik nem azzal van gond. Valami más lesz. Amúgy azért gyakorlom iframen, mert tömegesen szeretnék eltüntetni dolgokat egy másik oldalról és azt beépíteni a saját oldalamba.
-
gepelek
csendes tag
Értem amit írsz, meg is néztem a példát, és azt mondom, hogy működik, amit csinálsz, de a kép, amit eltüntetsz, az ez:
<img src="https://www.google.com/images/cleardot.gif" class="goog-te-gadget-icon" alt="" style="background-image: url("https://translate.googleapis.com/translate_static/img/te_ctrl3.gif"); background-position: -65px 0px;">Ha megnyitod az src-jét, láthatod, hogy ez nem egy olyan kép, amit látsz az oldalon, ezért nem is látod, hogy eltűnik.
Nézd meg mondjuk erre:
var elmnt = iframe.contentWindow.document.getElementsByTagName("img")[4];Ez a "Web Templates" alatti kép, ha ezen csinálod, akkor láthatod, hogy működik.
Igen ez valóban működik és értem is a lényegét, de ennek nem. Az második .fa osztály akarom eltüntetni, ami a második .fa osztály és nem engedi azt.
<!DOCTYPE html>
<html>
<body>
<iframe id="myFrame" src="/default.asp" style="height:380px;width:100%"></iframe>
<p>Click the "Tryit" button to hide the first H1 element in the iframe (another document).</p>
<button onclick="myFunction()">Try it</button>
<script>
function myFunction() {
var iframe = document.getElementById("myFrame");
var elmnt = iframe.contentWindow.document.getElementsByClassName(".fa")[0];
elmnt.style.display = "none";
}
</script>
</body>
</html> -
Agostino
addikt
köszönöm szépen mindkettőtöknek, végül Jim-Y ötlete vált be, de nagyon hálás vagyok. egyébként sehogy nem akart menni, mindig minden zöld maradt, aztán észbe kaptam, hogy user error a div párokat nem ágyaztam be div alá...
ez volt nekem
<div class="info"></div>
<div class="doboz">tartalom</div>ehelyett
<div>
<div class="info"></div>
<div class="doboz">tartalom</div>
</div>
-
Agostino
addikt
szia
kiszedtem őket, köszi a tanácsot. : ) még csak annyi volna a kérdésem, hogy mindezekkel hogyan kellene az info div-et megcéloznom. ez a script arra nem mutat rá, ha jól láttam. az volna a célom, hogy ha a doboz tartalma változik, akkor az info színe változzon és akár mindez többször ismétlődve egyetlen oldalon.
-
Agostino
addikt
jQuery(document).ready(function($) {
var doboz = $('.doboz');
doboz.each(function(){
if($(this).html()){
$(this).parent().css({'background-color': '#addfad', 'color': 'black'}).text('kész');
}
else{
$(this).parent().css({'background-color': '#addfad', 'color': 'black'}).text('kész');
}
});Rég nem jquery-ztem, lehet, hogy van szebb megoldás, de ez működik
szia
köszönöm, de elnézést, elbénáztam... a doboz nincsen beágyazva az info divbe... külön div-ekról volna szó...

Új hozzászólás Aktív témák
-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- MasterDeeJay: Low budget (50.000 forint) light gémer gép összerakása
- Poco F8 Ultra – forrónaci
- Samsung Galaxy S25 - végre van kicsi!
- Új Intel CPU-kkal jön a Surface Pro 12 és a Surface Laptop 8 for Business
- Digitális Állampolgárság Program DÁP
- Okos otthon - Home Assistant, openHAB és más nyílt rendszerek
- Mibe tegyem a megtakarításaimat?
- Nem kell még temetni: 2 éves órajelcsúcsot döntöttek meg Raptor Lake-kel
- Asustor NAS
- Yettel topik
- További aktív témák...
- Új MSI 16 Sword WUXGA 144Hz i7-14650HX 5.2Ghz 16mag 16GB 1TB SSD Nvidia RTX 4070 8GB Win11 Garancia
- Legújabb Thinkpad T14 gen6 - Bontatlan + magyar! - Core Ultra 7 255U - 16/32GB - 512GB - Gyártói gar
- Fujitsu 27" B27-9 TE Full HD 1920x1080 hófehér monitor - több db - gari számla - állítható magasság
- Kingston HyperX és FURY 16Gb (20-22k) és 32GB DDR4 (47k) laptop ramok párban is 2666Mhz/3200Mhz
- Lenovo Thinkpad T14s gen 6 - Teljesen új - Ryzen AI 7 PRO 350 - 32GB - 512GB - 2028 októberig gari!
- AKCIÓ! VALVE INDEX virtuális valóság szemüveg garanciával hibátlan működéssel
- HIBÁTLAN iPhone 15 128GB Black -2 ÉV GARANCIA - Kártyafüggetlen, MS5434
- BESZÁMÍTÁS! ASUS Z170 i7 6700K 16GB DDR4 512GB SSD GTX 1660Ti 6GB Rampage SHIVA DeepCool 400W
- Eladó Vivo Y19S 6/128GB fehér / 12 hónap jótállás
- Új állapotban! Lenovo ThinkPad T14 Gen 3 i5-1245/16gb ram/256 ssd FHD+ garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

. Banki project, múltkor nekem kellett deployolnom, ami abból állt, hogy a gépemre publisholt projectet átmásoltam a megadott mappába (egyelőre csak QA-ra, de productionbe is így megy
). Ugyanennél a cégnél közben írunk egy web api-t is, de hiába indul 0-ról, azt sem engedték core-ban írni, mert hogy nem lehet csakúgy telepíteni a core-t a szerverekre (ami elég béna kifogás, mert self-contained-ként simán mehetne oda).



