Smiley's meetellen in maxvalue teller
Dark_Paul - 14/06/2006 19:46
PHP ver gevorderde
Ik heb via javascript.internet.com een script gevonden waarmee ik een maximale lengte voor een invoerveld kan instellen. Er zit ook een teller bij. Als ik een smiley invoer, wordt die wel meegeteld als field.length, maar wordt de teller niet 'upgedate'. als je bijv. volgens de teller nog 800 tekens mag, je voegt een smiley in van 4tekens lang, mag je in het veld nog maar 769tekens invoeren. Toch geeft de teller nog steeds aan dat je nog 800 tekens mag invoeren. Hoe los ik dit op?
De functie in head-tags:
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
function textCounter(field, countfield, maxlimit) {
if (field.value.length > maxlimit) // if too long...trim it!
field.value = field.value.substring(0, maxlimit);
// otherwise, update 'characters left' counter
else
countfield.value = maxlimit - field.value.length;
}
</SCRIPT>
<SCRIPT LANGUAGE = "JavaScript" TYPE= "text/javascript" >
function textCounter( field, countfield, maxlimit) {
if ( field. value. length > maxlimit) // if too long...trim it!
field. value = field. value. substring( 0 , maxlimit) ;
// otherwise, update 'characters left' counter
else
countfield. value = maxlimit - field. value. length;
}
</SCRIPT>
de textarea waar de functie op werkt:
<TEXTAREA NAME="Message" COLS="40" ROWS="8" CLASS="inputbox" onKeyDown="textCounter(this.form.Message,this.form.chars,1000);" onKeyUp="textCounter(this.form.Message,this.form.chars,1000);"></TEXTAREA>
< TEXTAREA NAME= "Message" COLS= "40" ROWS= "8" CLASS = "inputbox" onKeyDown= "textCounter(this.form.Message,this.form.chars,1000);" onKeyUp= "textCounter(this.form.Message,this.form.chars,1000);" ></ TEXTAREA>
het invoegen van een smiley:
<A HREF="javascript:Smiley();" onClick="javascript:Insert(' >:O ');"><IMG SRC="images/smile/angry.gif" HEIGHT="16px" BORDER="0px"></A>
< A HREF= "javascript:Smiley();" onClick= "javascript:Insert(' >:O ');" >< IMG SRC= "images/smile/angry.gif" HEIGHT= "16px" BORDER= "0px" ></ A>
als laatste, het veld met de 'teller':
<INPUT READONLY TYPE="text" NAME="chars" SIZE="4" VALUE="1000" CLASS="inputbox"> characters left
< INPUT READONLY TYPE= "text" NAME= "chars" SIZE= "4" VALUE= "1000" CLASS = "inputbox" > characters left
10 antwoorden
Gesponsorde links
MindPrison - 14/06/2006 21:26
PHP gevorderde
<A HREF="javascript:Smiley(); textCounter(this.form.Message,this.form.chars,1000);" onClick="javascript:Insert(' >:O ');"><IMG SRC="images/smile/angry.gif" HEIGHT="16px" BORDER="0px"></A>
< A HREF= "javascript:Smiley(); textCounter(this.form.Message,this.form.chars,1000);" onClick= "javascript:Insert(' >:O ');" >< IMG SRC= "images/smile/angry.gif" HEIGHT= "16px" BORDER= "0px" ></ A>
Misschien dit eens veranderen?
BigBug - 14/06/2006 22:08
PHP expert
Citaat:
Ik heb via javascript.internet.com een script gevonden waarmee ik een maximale lengte voor een invoerveld kan instellen.
Als je iets vindt -> Omdat je ernaar zoekt heb je er vaak geen verstand van.. Een handige opmerking zou in dit geval handig zijn. Vooral omdat hij waarschijnlijk geen Javascript beheerst. Aan:
Citaat:
Misschien dit eens veranderen?
Heeft hij dus helemaal niks.. Behalve dat hij weet dat er daaraan moet worden veranderd.
Dark_Paul - 15/06/2006 09:33
PHP ver gevorderde
ik snap op zich wel wat er in het script gebeurt. Ik had al zoiets bedacht, ik dacht ook al dat er zon stukje in de tag van de smiley moest, maar ik had geen idee hoe ik dit erin zou moeten zetten. Mijn kennis van JavaScript is gewoon niet goed genoeg om zoiets zelf te kunnen scripten..
Dark_Paul - 15/06/2006 09:50
PHP ver gevorderde
@marten: Er wordt nu met behulp van het JavaScript ook platte tekst ingevoegd (voorbeeld: http://site.whiy-online.com/guestbook.php )
maar het is ook handig als de smileys eronder staan. Omdat niet iedereen alle codes uit z'n hoofd weet. Vervolgens wordt in het PHP-bestand de platte tekst van de smileys vervangen door een <IMG>-tag.
marten - 15/06/2006 09:52
Beheerder
Ik zie dat hij het daar ook niet doet.....
Je moet eerst een spatie geven voordat hij de smilie meegeeft ;) Probeer dat bij jou script eens
BramBo - 15/06/2006 10:55 (laatste wijziging 15/06/2006 10:55)
JS gevorderde
Ik zie in je broncode dat je een aantal scripts lost gebruikt, dit kan je gewoon in één script element plaatsen.
Waarom gebruik je verder niet meer globalen ?
dus boven je functies :
var countfield = document.forms[0].chars;
var maxlimit = 1000;
var field = document.forms[0].Message;
var countfield = document. forms[ 0 ] . chars;
var maxlimit = 1000 ;
var field = document. forms[ 0 ] . Message;
etc.
function Insert() {
/* functie code.... */
textCounter();
}
function Insert( ) {
/* functie code.... */
textCounter( ) ;
}
Ten eerste hoef je ze dan niet mee te sturen in je onclick events. en ten tweede heb je ze dan in iedere functie tot je beschikking.
ik zou de smiley functie gewoon aanpassen(nadat je de variabelen heb gedifiniëerd als hierboven.)
Dark_Paul - 15/06/2006 13:20 (laatste wijziging 15/06/2006 20:42)
PHP ver gevorderde
@marten: dat gebeurt al. elke smiley heeft als code spatiecodespatie, dus bijv. (' :@ ')
@BramBo: ik snap niet precies wat je bedoeld.. zoiets:
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
var countfield = document.forms[Guestbook].chars;
var maxlimit = 1000;
var field = document.forms[Guestbook].Message;
function textCounter()
{
if (field.value.length > maxlimit) // if too long...trim it!
field.value = field.value.substring(0, maxlimit);
// otherwise, update 'characters left' counter
else
countfield.value = maxlimit - field.value.length;
}
function Smiley()
{
return;
}
function Insert(Smiley)
{
var Edit;
var ThisText = document.Guestbook.Message;
ThisText.value = ThisText.value + Smiley + " ";
textCounter();
ThisText.focus();
return;
}
</SCRIPT>
<SCRIPT LANGUAGE = "JavaScript" TYPE= "text/javascript" >
var countfield = document. forms[ Guestbook] . chars;
var maxlimit = 1000 ;
var field = document. forms[ Guestbook] . Message;
function textCounter( )
{
if ( field. value. length > maxlimit) // if too long...trim it!
field. value = field. value. substring( 0 , maxlimit) ;
// otherwise, update 'characters left' counter
else
countfield. value = maxlimit - field. value. length;
}
function Smiley( )
{
return ;
}
function Insert( Smiley)
{
var Edit;
var ThisText = document. Guestbook. Message;
ThisText. value = ThisText. value + Smiley + " " ;
textCounter( ) ;
ThisText. focus( ) ;
return ;
}
</SCRIPT>
want ik krijg 't nog niet werkend.. :S
Laat maar, met wat puzzelen heb ik 't aan de gang gekregen dankje!
marten - 15/06/2006 20:49
Beheerder
oplossing graag
Dark_Paul - 15/06/2006 21:19 (laatste wijziging 15/06/2006 21:19)
PHP ver gevorderde
owjah, sorry, vergeten ><
de functie:
function textCounter(field, countfield, maxlimit)
{
var field = document.Guestbook.Message;
var countfield = document.Guestbook.chars;
var maxlimit = 1000;
if (field.value.length > maxlimit) // if too long...trim it!
field.value = field.value.substring(0, maxlimit);
// otherwise, update 'characters left' counter
else
countfield.value = maxlimit - field.value.length;
}
function textCounter( field, countfield, maxlimit)
{
var field = document. Guestbook. Message;
var countfield = document. Guestbook. chars;
var maxlimit = 1000 ;
if ( field. value. length > maxlimit) // if too long...trim it!
field. value = field. value. substring( 0 , maxlimit) ;
// otherwise, update 'characters left' counter
else
countfield. value = maxlimit - field. value. length;
}
de Insert-functie voor de smileys is hetzelfde gebleven, alleen heb ik er textCounter(); aan toegevoegd:
function Insert(Smiley)
{
var Edit;
var ThisText = document.Guestbook.Message;
ThisText.value = ThisText.value + Smiley + " ";
ThisText.focus();
textCounter();
return;
}
function Insert( Smiley)
{
var Edit;
var ThisText = document. Guestbook. Message;
ThisText. value = ThisText. value + Smiley + " " ;
ThisText. focus( ) ;
textCounter( ) ;
return ;
}
textarea:
<TEXTAREA NAME="Message" onKeyDown="textCounter();" onKeyUp="textCounter();"></TEXTAREA>
< TEXTAREA NAME= "Message" onKeyDown= "textCounter();" onKeyUp= "textCounter();" ></ TEXTAREA>
smiley:
<A HREF="javascript:Smiley();" onClick="javascript:Insert(' >:O ');"><IMG SRC="images/smile/angry.gif" HEIGHT="16px" BORDER="0px"></A>
< A HREF= "javascript:Smiley();" onClick= "javascript:Insert(' >:O ');" >< IMG SRC= "images/smile/angry.gif" HEIGHT= "16px" BORDER= "0px" ></ A>
en 't tellertje:
<INPUT READONLY TYPE="text" NAME="chars" SIZE="4" VALUE="1000" CLASS="inputbox">
< INPUT READONLY TYPE= "text" NAME= "chars" SIZE= "4" VALUE= "1000" CLASS = "inputbox" >
Gesponsorde links
Dit onderwerp is gesloten .