Maximale tekst lengte voor invoer veld.

Status
Niet open voor verdere reacties.

comass

Gebruiker
Lid geworden
19 dec 2000
Berichten
456
Hoi,

Ik gebruik Joomla voor een webwinkel.
Hierbij kunnen de klanten een kaartje bij hun bestelling toevoegen (bloemenwinkel)

Hiervoor heb ik 3 opties
  1. Kaartje 100 tekens
  2. Standaard lint 80 tekens
  3. Extra lint 120 tekens

Hoe krijg ik het nu zo dat per gekozen optie het niet mogelijk wordt om een langere tekst in te vullen.
Ik gebruik nu deze code zodat de maximale tekst 120 tekens is.
HTML:
<input type="text" id="<?php echo $attribute['titlevar'] ?>_field" name="<?php echo $attribute['titlevar'].$attribute['product_id'] ?>" maxlength="120" size="30" onKeyUp="toCount(<?php echo $attribute['titlevar'] ?>_field',<?php echo $attribute['titlevar'].$attribute['product_id'] ?>','{CHAR} characters left',120);">

Iemand een idee of oplossing?
 
Dat kan met setAttribute.
Voorbeeldje:
HTML:
<html>
<head>
<script>
function verander()
{
  document.getElementById('bla').setAttribute('maxlength', '5')
}
</script>
</head>
<body>
<input type="text" id="bla" maxlength="4">
<br>
<a href="#" onClick="verander()">klik</a>
</body>
</html>
Na het klikken op "klik" is de maxlength 5 i.p.v. 4.
 
Hoi,

Dit werkt denk ik niet voor mij.
Deze regel in mijn pagina:
<input type="text" id="<?php echo $attribute['titlevar'] ?>_field" name="<?php echo $attribute['titlevar'].$attribute['product_id'] ?>" maxlength="120" size="30" onKeyUp="toCount(<?php echo $attribute['titlevar'] ?>_field',<?php echo $attribute['titlevar'].$attribute['product_id'] ?>','{CHAR} characters left',120);">

Geeft de variabelen een naam.
Ik kan deze regel niet 3x plaatsen en dan de opdrachten meegeven van de maximale lengte.
 
lengte tekst veld

Hoi,

Als ik dit gebruik ('maxlength', '5')
dit kan ik niet gebruiken aangezien ik 3 verschillende lengtes heb van 80,100 of 120
 
dat komt omdat de functie maar voor 1 iets werkt. Iets beters:
[JS]function verander(aantal)
{
document.getElementById('bla').setAttribute('maxlength', aantal);
}
[/JS]en je html:
HTML:
<a href="#" onclick="verander(100)">100</a>
<a href="#" onclick="verander(250)">250</a>
<a href="#" onclick="verander(300)">300</a>
:thumb:
 
dat komt omdat de functie maar voor 1 iets werkt. Iets beters:
[JS]function verander(aantal)
{
document.getElementById('bla').setAttribute('maxlength', aantal);
}
[/JS]

Begrijp ik het dat het zo moet?

[JS]function verander(aantal)
{
document.getElementById('kaartje').setAttribute('maxlength', 100);
}
[/JS]
[JS]function verander(aantal)
{
document.getElementById('lint').setAttribute('maxlength', 80);
}
[/JS]
[JS]function verander(aantal)
{
document.getElementById('extra_lint').setAttribute('maxlength', 120);
}
[/JS]
 
Hmm, hoewel je wel gelijk ziet hoe het inelkaarzit: nee!

De functie (javascript) 'eet' 1 variabele, genaamd aantal. Nu kan je in je links aangeven, hoeveel je precies wilt! Dus je hebt 1 functie die alle mogelijke mogelijkheden kan aanroepen. Je moet dus gewoon de functie gebruiken die ik gaf, en in je onclick waarde van je html de juiste aantallen zetten. Om even het voorbeeld dus te 'verbeteren':
HTML:
<html>
<head>
<script>
function verander(aantal)
{
  document.getElementById('bla').setAttribute('maxlength', aantal);
}
</script>
</head>
<body>
<input type="text" id="bla" maxlength="4">
<br>
<a href="#" onclick="verander(100)">100</a>
<a href="#" onclick="verander(250)">250</a>
<a href="#" onclick="verander(300)">300</a>
</body>
</html>
dat zou zo moeten werken! :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan