MaskedTextField
MaskedTextField
-komponentin tavoitteena on tarjota mukautettava ja helposti validoitava tekstinsyöttö. Se soveltuu hyvin sovelluksiin, jotka vaativat muotoiltua syöttöä, kuten rahoitus-, verkkokauppa- ja terveydenhuollon sovelluksiin.
Perusasiat
MaskedTextField
voidaan instansioida parametreilla tai ilman. Voit määrittää alkusarjan, etiketin, paikkamerkkitekstin ja kuuntelijan, jos arvo muuttuu.
MaskedTextField field = new MaskedTextField("Tilinumero");
field.setMask("ZZZZ-0000")
.setHelperText("Maski: ZZZZ-0000 - esimerkiksi: SAVE-2025")
Maskisäännöt
MaskedTextField
muotoilee tekstisyöttöä maskin avulla - merkkijono, joka määrittää, mitkä merkit ovat sallittuja kussakin asemassa. Tämä varmistaa johdonmukaisen ja strukturoituneen syötön, kuten puhelinnumeroiden, postinumeroiden ja henkilötunnusten muotojen osalta.
Tuetut maskimerkit
Merkki | Kuvaus |
---|---|
X | Mikä tahansa tulostettava merkki |
a | Mikä tahansa aakkosnumeerinen merkki (iso tai pieni) |
A | Mikä tahansa aakkosnumeerinen merkki; pienet kirjaimet muutetaan isoiksi |
0 | Mikä tahansa numero (0–9) |
z | Mikä tahansa numero tai kirjain (iso tai pieni) |
Z | Mikä tahansa numero tai kirjain; pienet kirjaimet muutetaan isoiksi |
Kaikki muut merkit maskissa käsitellään kirjaimellisesti ja ne on kirjoitettava tarkasti.
Esimerkiksi maski kuten XX@XX
vaatii käyttäjää syöttämään @
keskelle.
- Virheelliset merkit jätetään huomiotta.
- Lyhyt syöttö täydennetään välilyönneillä.
- Pitkä syöttö katkaistaan sopimaan maskiin.
Esimerkkejä
field.setMask("(000) 000-0000"); // Esimerkki: (123) 456-7890
field.setMask("A00 000"); // Esimerkki: A1B 2C3 (kanadalainen postinumero)
field.setMask("ZZZZ-0000"); // Esimerkki: ABCD-1234
field.setMask("0000-0000-0000-0000");// Esimerkki: 1234-5678-9012-3456
Jos maski sisältää vain X
, kenttä käyttäytyy kuin tavallinen TextField
, mikä sallii minkä tahansa tulostettavan syötteen.
Tämä on hyödyllistä, kun haluat säilyttää mahdollisuuden muotoilla ilman tiukkoja merkkisääntöjä.
Näytä Koodi
- Java
Validointimallit
Vaikka maskit määrittävät syötteen rakenteen, voit yhdistää ne validointimalleihin pakottaaksesi tarkempia syöttösääntöjä. Tämä lisää ylimääräisen kerroksen asiakaspuolen validointia käyttäen säännöllisiä lausekkeita.
Käytä setPattern()
-metodia soveltaaksesi mukautettua säännöllistä lausetta:
field.setPattern("[A-Za-z0-9]{10}"); // Pakottaa 10-merkkisen aakkos-numeerisen koodin
Tämä varmistaa, että syöte ei ainoastaan vastaa maskia, vaan myös noudattaa määriteltyä rakennetta, kuten pituutta tai sallittuja merkkejä.
Tämä on erityisen hyödyllistä, kun:
- Maski sallii liikaa joustavuutta
- Haluat pakottaa tarkan pituuden tai tietyn muodon (esim. heksadesimaali, Base64, UUID)
Mallin on oltava kelvollinen JavaScript-säännöllinen lauseke, kuten RegExp
-tyypissä käytetään. Lisätietoja löytyy HTML:n malli-attribuutin asiakirjasta.
Arvon palauttaminen
MaskedTextField
sisältää palauttamisominaisuuden, joka palauttaa kentän arvon ennalta määriteltyyn tai alkuperäiseen tilaan.
Tämä voi olla hyödyllistä käyttäjän muutosten peruuttamiseen tai oletusyhdisteeseen palaamiseen.
field.setRestoreValue("ABC123");
field.restoreValue();
Tavat palauttaa arvo
- Ohjelmallisesti kutsumalla
restoreValue()
- Näppäimistön avulla, painamalla ESC (tämä on oletuspalautusavain, ellei se kumota tapahtumakuuntelijalla)
Voit asettaa palautettavan arvon käyttämällä setRestoreValue()
. Jos palautusarvoa ei ole asetettu, kenttä palautuu alkuperäiseen arvoonsa sen hetkellä, kun se renderöitiin.
Näytä Koodi
- Java
MaskedTextFieldSpinner
MaskedTextFieldSpinner
laajentaa MaskedTextField
lisäämällä pyörintäohjaimia, jotka mahdollistavat käyttäjien kiertää esiasetettujen arvojen listan.
Tämä parantaa käyttäjäkokemusta tilanteissa, joissa syötteen tulisi olla rajoitettu kiinteään joukkoon kelvollisia vaihtoehtoja.
Näytä Koodi
- Java
Avainominaisuudet
-
Avoin vaihtoehtoluettelo
Täytä pyörintäohjaimet kelvollisten merkkijonojen arvojen listalla käyttämälläsetOptions()
:spinner.setOptions(List.of("Vaihtoehto A", "Vaihtoehto B", "Vaihtoehto C"));
-
Ohjelmallinen pyöritys
KäytäspinUp()
jaspinDown()
siirtyäksesi vaihtoehtojen läpi:spinner.spinUp(); // Valitsee seuraavan vaihtoehdon
spinner.spinDown(); // Valitsee edellisen vaihtoehdon -
Indeksin hallinta
Aseta tai hae nykyinen valintaindeksi:spinner.setOptionIndex(1);
int current = spinner.getOptionIndex(); -
Maskiyhteensopivuus
Perii täysin kaikki muotoilut, maskisäännöt ja mallivalidoinnitMaskedTextField
-komponentilta.