2010-04-13 5 views
0

J'utilise textarea pour obtenir des entrées. Une étiquette montre les caractères mis à jour à gauche. Cela fonctionne très bien dans IE, mais dans FF 3.0, après avoir atteint la limite maximale, il ne permet pas de supprimer ou de retour arrière de la clé. J'utilise une fonction javascript sur l'événement de pression de touche de textarea.Problème avec keypress dans Mozilla

le code javascript est

function checkLength() 
{ 
    var opinion = document.getElementById('opinion').value; 
    if(opinion.length > 50) 
     alert("You have reached the mas limit."); 
    else 
     document.getElementById('limit').innerHTML = 50 - opinion.length; 
} 

tout sur la page, je suis en utilisant ce

Tout fonctionne très bien. Le problème se pose dans FF, lorsque les entrées atteignent la limite maximale, le message est affiché, mais il ne permet pas de supprimer ou de retour arrière.

Répondre

0

javascript code est erroné

function checkLength() 
{ 
    var opinion = document.getElementById('opTxtArea').value; 
    if(opinion.length > 50) 
     alert("You have reached the mas limit."); 
    else 
     document.getElementById('limit').innerHTML = 50 - opinion.length; 
} 

On vous a fait fausse route élément

var opinion = document.getElementById('opinion').value; 

est maintenant changé pour

var opinion = document.getElementById('opTxtArea').value; 
+0

encore ne résout pas le problème dans Mozilla. Une fois la limite atteinte, le retour arrière ou la suppression ne sont plus autorisés. – sudhansu

0

essayé de supprimer "javascript:"?

Javascript:

function checkLength() 
{ 
var opinion = document.getElementById('opTxtArea').value; 
if(opinion.length > 50) 
    alert("You have reached the max limit."); 
else 
    document.getElementById('limit').innerHTML = 50 - opinion.length; 
} 

Code HTML:

<label id="limit">50</label> 
<textarea id="opTxtArea" onkeypress="checkLength();" maxlength="50"></textarea> 

En outre, à la ligne document.getElementById('opinion').value, je pense que vous avez le mauvais ID est entré.

+0

Thx pour répondre. C'était une erreur. buste après avoir rectifié le bon ID, le problème est toujours là. – sudhansu

0

Comme indiqué dans une autre réponse, vous devez supprimer le préfixe javascript: dans l'attribut onkeypress, car cela ne sert à rien.

Il existe d'autres problèmes ici. Qu'est-ce que vous voulez réellement accomplir? L'alerte est très ennuyante pour l'utilisateur, donc je suggère plutôt d'afficher un élément sur la page pour dire que la limite de caractères a été dépassée. Aussi, que voulez-vous arriver lorsque la limite de caractères est dépassée? Vous pouvez empêcher d'autres entrées (sans empêcher la suppression) ou faire ce que fait Stack Overflow pour ses champs de commentaire, qui est d'afficher un nombre négatif lorsque la limite de caractères a été dépassée sans empêcher d'autres entrées.