Probleme avec mes textbox en javascript

Fermé
WaZz - 23 févr. 2006 à 05:44
 Eric - 4 déc. 2006 à 15:42
J'ai un probleme :

J'ai creer ceci
http://www.e-novative.ca/poptarts/page2.php

et mon probleme se situe au niveau des textbox. Je voudrai que quand on remplit l'emploi du temps, quand on est au bout de la ligne, qu'il soit impossible d'aller plus loin. Je ne veux pas que mes textbox scroll si vous voyez ce que je veux dire. Mais j'ai des soucis a mettre le script en place...
Aussi, je ne peux pas utiliser la propriete maxlength dans mes textbox, car il faut que je puisse remplir les textbox au maximum si je peux. La lettre 'm' est plus large qu'un 'i' ou un 'l' par exemple. Donc c'est pour ca que je dois calculer la largeur de ma string en continue...

Comme vous pouvez le voir sur mon site, la boite total pixel montre qu'il y a un probleme la aussi.... Si qq1 pouvait m'aider ca serait bien cool

merci,
WaZz

voici le script :

<script language="javaScript">



function beep(x) {

total=0 //PIXELS COUNTER
string2="" //USED TO RECOMPOSED THE STRING IN THE TEXTBOX

obj=eval("document.forms[0].t"+x)

string1=obj.value //DATA FROM THE USER
length_string=obj.value.length //LENGTH OF THE FIRST STRING

//
//CHECKING WHAT IS THE LAST LETTER INPUT, SO THE SCRIPT KNOW HOW WIDE THE STRING IS
//
letter=string1.charAt(length_string-1)


//
//LOOP TO KNOW HOW WHICH LETTERS -----> HOW MANY PIXELS
//

for(a=0;a<length_string+1;a++){

if(letter=="m"){
total=total+8
}
else if(letter=="v" || letter=="w" || letter=="y"){
total=total+6
}
else if(letter=="a" || letter=="b" || letter=="c" || letter=="d" || letter=="e" || letter=="g" || letter=="h" || letter=="k" || letter=="n" || letter=="o" || letter=="p" || letter=="q" || letter=="s" || letter=="u" || letter=="x"){
total=total+5
}
else if(letter=="f" || letter=="z"){
total=total+4
}
else if(letter=="t" || letter==" " || letter=="r"){
total=total+3
}
else if(letter=="i" || letter=="j" || letter=="l"){
total=total+2
}


//
//IF THE TOTAL OF PIXELS IS >200 OR >254 THEN IT ENTERS THE IF END PLAY THE ALERT BEEP TO LET THE USER THAT THE TEXTBOX IS FULL AND TO RECOMPOSE THE NEW STRING - THE LAST LETTER
//

if (x==12 || x==13){
if (total>200){
length_string2=obj.value.length
//java.awt.Toolkit.getDefaultToolkit().beep();
for(a=0;a<length_string2;a++){
string2=string2 + string1.charAt(a-1)
obj.value=string2
}
}
}
else{
if (total>254){
length_string2=obj.value.length
//java.awt.Toolkit.getDefaultToolkit().beep();
for(a=0;a<length_string2;a++){
string2=string2 + string1.charAt(a-1)
obj.value=string2
}
}
}

document.forms[0].debug.value=total
document.forms[0].debug2.value=length_string

} //CLOSE FOR LOOP



}
</script>

1 réponse

Salut,

Tout simplement, pourquoi tu n'utilise pas une police telle que Courrier où tous les caractères ont la même largeur?

Ca te simplifierait bein les choses non?
0