Hirdetés
- Melyik tápegységet vegyem?
- Milyen széket vegyek?
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Milyen egeret válasszak?
- Sony MILC fényképezőgépcsalád
- Milyen TV-t vegyek?
- Soundbar, soundplate, hangprojektor
- RGB-s, LCD-kijelzős VGA-tartó olcsón? Hol kell aláírni?
- Windows 11-hez nyúl az AYANEO értékorientált almárkája
- Milyen nyomtatót vegyek?
-
PROHARDVER!
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
Hirdetés
- ÚJ BONTATLAN Apple Watch Series SE3 40mm Stairlight Azonnal Átvehető DEÁK TÉRNÉL 1 Év Apple Garancia
- G.SKILL Aegis 16GB (2x8GB) DDR4 3200MHz F4-3200C16D-16GIS új 2 pár
- Lenovo MIIX 520-12IKB, Magyar bill, i5-8250 8Gb ram, 256Gb nvme, számla, garancia 2in1
- SAMSUNG LS32DG800SU ) 240HZ 4K OLED GAMER MONITOR !! AKCIÓ
- SAMSUNG (LS49CG954EUXEN ) 49" 240HZ NEO-QLED DUAL QHD GAMER ! AKCIÓ!!
- LG 27GR83Q-B - 27" IPS / QHD 2K / 240Hz & 1ms / NVIDIA G-Sync / FreeSync / DisplayHDR 400
- Keresünk Galaxy S22/S22+/S22 Ultra
- Xiaomi 11 Lite / 6/128GB / Kártyafüggetlen / 12Hó Garancia
- Gamer PC - Számítógép! Csere- Beszámítás! R7 5700 / Suprim RTX 3080/ 32GB DDR4 / 500GB SSD
- Akciós! Lenovo ThinkPad P15 Gen 1 Intel i7-10875H 32GB 512GB Nvidia Quadro RTX 3000 1 év garancia
Állásajánlatok
Cég: Laptopműhely Bt.
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).
).


