Hirdetés
- sziku69: Fűzzük össze a szavakat :)
- Klaus Duran: Minden drágul. Vajon a fizetések 2026-ban követi minimálisan?
- gerner1
- Geri Bátyó: Agglegénykonyha 11 – Vörösboros marhaszelet
- droidic: Saját hálózat, saját szabályok – Építs profi infrastruktúrát!
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- eBay-es kütyük kis pénzért
- Toomy: FOXPOST: régen jó volt, de már jobban jársz, ha elfelejted
- Őskoczka
- Luck Dragon: Asszociációs játék. :)
-
LOGOUT
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
-
petyus_
senior tag
válasz
instantwater
#7998
üzenetére
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). -
petyus_
senior tag
válasz
instantwater
#7996
üzenetére
Még ebben az esetben is jobb lenne, ha húznának egy réteget a legacy rendszerre, és legalább afölött lehetne modern technológiákkal dolgozni. Mert így a valamikor esedékes újraírás még drágább lesz.
-
petyus_
senior tag
válasz
hiperFizikus
#7825
üzenetére
ne 'block' legyen, hanem 'inline-block'
-
petyus_
senior tag
válasz
bandi0000
#7767
üzenetére
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.
-
petyus_
senior tag
válasz
bandi0000
#7765
üzenetére
Ezeket a mat-error alapból figyeli, required-öt is pl csak akkor írja ki, ha rámész az input mezőre, és kijössz belőle, tehát ha rákattintasz, de még nem írtál bele, akkor ki sem írja, csak ha úgy hagyod el, hogy üresen hagytad, vagy írtál bele, de visszatörölted.
"Errors are hidden initially and will be displayed on invalid form fields after the user has interacted with the element" - ezért, ha csak egy error-message van a fieldhez, akkor nem is kell neked foglalkozni az ngIf-ekkel, csak ha több van, és akkor is elég, ha csak az adott error-t teszed az ngIf-be
-
petyus_
senior tag
válasz
bandi0000
#7762
üzenetére
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.
-
petyus_
senior tag
válasz
bandi0000
#7759
üzenetére
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; -
petyus_
senior tag
válasz
bandi0000
#7747
üzenetére
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.
-
petyus_
senior tag
válasz
Nagyzoli27
#7310
üzenetére
Mert a .textContent() egy stringet ad vissza, és ezen akarod beállítani az innerHTML-t.
-
petyus_
senior tag
válasz
gepelek
#6906
üzenetére
É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.
-
petyus_
senior tag
válasz
gepelek
#6903
üzenetére
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.
-
petyus_
senior tag
válasz
gepelek
#6901
üzenetére
É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.
-
petyus_
senior tag
-
petyus_
senior tag
válasz
Agostino
#6890
üzenetére
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
Új hozzászólás Aktív témák
- ASUS ROG Ally
- Okos Otthon / Smart Home
- Xbox Classic / Xbox 360
- Battlefield 6
- Futás, futópályák
- Xiaomi Mi Box androidos médialejátszó 4K és HDR támogatással
- Villanyszerelés
- Fujifilm X
- Milyen billentyűzetet vegyek?
- Úgy állhat le a 16 GB-os GeForce RTX 5060 Ti gyártása, hogy közben nem áll le
- További aktív témák...
- Új kijelzős! HP ZBook Studio G8 WorkStation i7-11850H 32GB 1000GB Nvidia Quadro T1200
- Varmilo /Limitált kiadás/Beijing Opera/EN/Silent Red/
- HP 200W töltők (19.5V 10.3A) kis kék, kerek, 4.5x3.0mm, 928429-002
- BESZÁMÍTÁS! MSI B450M R5 5500 16GB DDR4 512GB SSD RX 7600 8GB Rampage SHIVA ADATA 600W
- Xiaomi Redmi Note 14 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
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).
).

