2012-12-05 3 views
0

Je rencontre des problèmes avec le code qui fonctionnait, mais qui ne fonctionne plus. J'ai un compteur de caractères sur une zone de texte avec le code ci-dessous dans le fichier .aspx:registerstartupscript bloque le compteur de caractères javascript

<script> 
    var bName = navigator.appName; 
    function taLimit(taObj, maxL) { 
     if (taObj.value.length == maxL) return false; 
     return true; 
    } 

    function taCount(taObj, Cnt, maxL) { 
     objCnt = createObject(Cnt); 
     objVal = taObj.value; 
     if (objVal.length > maxL) objVal = objVal.substring(0, maxL); 
     if (objCnt) { 
      if (bName == "Netscape") { 
       objCnt.textContent = maxL - objVal.length; 
      } 
      else { objCnt.innerText = maxL - objVal.length; } 
     } 
     return true; 
    } 
    function createObject(objId) { 
     if (document.getElementById) return document.getElementById(objId); 
     else if (document.layers) return eval("document." + objId); 
     else if (document.all) return eval("document.all." + objId); 
     else return eval("document." + objId); 
    } 
        </script> 

ASPX:

<asp:TextBox ID="txtDescription" runat="server" Font-Names="Courier New" 
TextMode="MultiLine" Width="398px" onKeyPress="return taLimit(this, 50)" onKeyUp="return taCount(this,'myCounter1', 50)"></asp:TextBox> 
<br /><B><SPAN id='myCounter1'>50</SPAN></B> 

Cela a fonctionné sans problème avant, mais maintenant je veux un moyen de mettre à jour le myCounter1 Au chargement de la page, pour afficher les caractères restants corrects, je charge le texte de la base de données dans la zone de texte.

i en ce moment je utilise ceci:

  ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "document.getElementById('myCounter1').textContent = 50 - " + txtDescription.Text.Length.ToString() + ";", true); 

Cela fonctionne, il met le compteur de caractères aux caractères corrects restants. Maintenant, le problème est quand le texte est tapé dans la zone de texte, le compteur de caractères ne se mettra pas à jour plus dynamiquement. Quelqu'un pourrait-il me dire pourquoi?

+0

Souhaitez-vous utiliser jQUery? rend la vie plus facile –

+0

Ma connaissance de jquery est vraiment inexistante maintenant, et je dois résoudre ce problème dès que possible. – Luckl507

+0

Puis-je vous donner une solution jQUery –

Répondre

0

Utilisation de js. Mettez ceci dans votre script:

<script type="text/javascript"> 
window.onload = function(){ 
    taCount(document.getElementById('<%=txtDescription.ClientID%>'),'myCounter1', 50); 
} 
</script> 

Supprimez le code du gestionnaire de scripts côté serveur.

+0

Merci beaucoup, cela a résolu mon problème! Je ne peux pas croire que je n'y ai pas pensé. – Luckl507

Questions connexes