Kuinka saa rajattua HTML:ssä tekstikentän kirjoituspituuden, jotta tekstiä ei voi kirjoittaa enempää kuin esim 255 merkkiä?
Kiitos!
Et mitenkään.
Voit Javascriptillä tarkistaa kentässä olevien merkkien määrän, ja estää sen jälkeen käyttäjää kirjoittamasta kenttään, mutta joudut edelleen tarkistamaan pituuden palvelimella, koska Javascript ei ole luotettavaa.
Kyllä pituuden voi rajata jos käytät maxlength attribuuttia.
esim:
<input type="text" name="Kentta1" maxlength=10>
Silloin et tarvitse JavaScriptiä
Oletin, että nyt puhutaan textarea-elementistä, eikä text-tyyppisestä inputista, sillä kun tuota attribuuttia ei ole.
Noh, oli miten oli, palvelinpuolen tarkastus on joka tapauksessa tarpeen, ei tuo maxwidth-attribuuttikaan luotettava ole.
Ja totta kai se tekstin pituus pitää tarkistaa, jos se lähetetään johonkin. Voihan sitä tehdä vaikka ihan selaimen, joka ei piittaa mitään mistään javascripteistä tai rajoituksista.
Tuo HTML:llä tehtävä esto on vain kätevä siinä tapauksessa, ettei käyttäjä syötä vahingossa liian pitkää tekstiä tietämättään että se katkaistaan.
Täällä voisi olla jonkinlainen ratkaisu:
https://www.ohjelmointiputka.net/keskustelu/8694-miten-käsiksi-get-muuttujaan-javascriptillä
palvelin päässä vaa tarkistus:
<?php if(strlen($_POST['data']) > 100) { //toimii, mut tyhjä sivu jossa virheteksti ei ole ehkä se parhammain näköinen die("Liian pitkä teksti!"); //yksi tapa voisi tietenkin olla asettaa eväste //setcookie ("virhe", "true"); //ohjata käyttäjä takaisin sivulle //header("location www.osote.com/sivu"); //ja sitten siellä toisella sivulla printata johonkin kohtaan että teksti on liian pitkä / lyhyt jos tuo evästä on asetettu.Alempana esimerkki. } ?> <?php if ($_COOKIE['virhe'] = "true") { echo 'Liian pitkä / lyhyt teksti'; } ?>
näin siis, mikäli käytössä olisi php.
edit: perskule, pääs kooditagit unohtumaan..
Blaze kirjoitti:
Oletin, että nyt puhutaan textarea-elementistä, eikä text-tyyppisestä inputista, sillä kun tuota attribuuttia ei ole.
Eikö tuo ole myös textarea:ssa, muistaakseni ainakin toimii Internet Explorerissa?
ville-v kirjoitti:
Blaze kirjoitti:
Oletin, että nyt puhutaan textarea-elementistä, eikä text-tyyppisestä inputista, sillä kun tuota attribuuttia ei ole.
Eikö tuo ole myös textarea:ssa, muistaakseni ainakin toimii Internet Explorerissa?
Sillä mikä toimii IE:ssä ei luonnollisestikaan ole mitään tekemistä sen kanssa mitä lukee spesifikaatiossa tai mitä kaikki selaimet tukee.
http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.7
Aihe on jo aika vanha, joten et voi enää vastata siihen.