2009-11-17 8 views
2

Comment puis-je changer la taille du champ diynamicaly?
J'ai un champ de sélection et il y a 3 options avec des valeurs différentes. Donc, si l'utilisateur sélectionne l'un d'entre eux dans le vous voyez les valeurs. Mais comment puis-je changer la taille que les valeurs de champ d'option tient dans lala taille Changing dynamiquement <textarea >, le style

function changeText() 
     { 

      var select  = document.getElementById("surl"); 
      var textfield = document.getElementById("turl"); 
      var bold   = document.getElementById("burl"); 
      var link   = document.getElementById("linkText"); 

      if(bold.style.display == "none") 
       bold.style.display = ""; 
      //if(link.innerHtml) 

      bold.innerHtml = select.value; 
      //if(link.innerHTML !="") 
       link.innerHTML= select.value; 
      textfield.value = select.value; 

     } 


<b>Sample: </b><select id="surl" onchange="changeText();" style="visibility: visible;" name="linkText"> 
     <option>Select LinkText</option> 
     <option value="<a href='http://www.doesntexist.dsdsd/'>Want sign? http://www.doesntexist.dsdsd</a>"> 
      Variant1 
     </option> 
      <option value="<a href='http://www.doesntexist.dsdsd/'>Wanna killme? http://www.doesntexist.dsdsd</a>"> 
      Variant 2 
     </option> 


    </select> 
    <br /> 
    <div class="succes"> 
    <span id="burl" style="display: none"><br /><a id="linkText" href="http://www.doesntexist/"></a></span> 
    </div> 
    </p> 
    <p> 

     <textarea id="turl" style=""> 
     <a href="http://www.doesntexist">text...</a> 
     </textarea> 
    </p> 
+0

exemple de code pls? – Lukman

+0

Ok chef vous l'obtiendrez ;-) – streetparade

Répondre

1

Désolé, je dois avez mal compris votre problème.

Vous souhaitez donc redimensionner dynamiquement une zone de texte en fonction de quoi, de son contenu? Vous pouvez utiliser le jQuery autoResize plugin pour cette ...

0

Par exemple:

<script type="text/javascript"> 
document.getElementById("textarea_id").style.width = "300px"; 
document.getElementById("textarea_id").style.width = "200px"; 
</script> 
+0

Ah, la question a été mise à jour. Appuyant la réponse de @Mathias Bynens. –

1

Un rapide « n » solution jQuery sale serait la suivante:

$('input#foo-option-1').bind('change, click', function() { 
if ($(this).is(':checked')) { 
    $('textarea').css('height', '150px'); 
} 
}); 

$('input#foo-option-2').bind('change, click', function() { 
if ($(this).is(':checked')) { 
    $('textarea').css('height', '250px'); 
} 
}); 

$('input#foo-option-3').bind('change, click', function() { 
if ($(this).is(':checked')) { 
    $('textarea').css('height', '350px'); 
} 
}); 

Bien sûr, ce code n'est pas très sec. De plus, modifier les propriétés CSS via JavaScript n'est jamais une très bonne idée - il est préférable d'ajouter dynamiquement des classes via JS et de spécifier le CSS dans vos fichiers CSS (duh).

+0

Ce n'était pas ce que je suis à la recherche et le code ressemble à de la sauce tomate avec des spaghettis – streetparade

+1

@streetparade> c'était impoli –

0

d'abord tout ce que je pensais qu'il y a plus de devs qui peuvent aider; toute façon est ici la réponse

d'abord créer une fonction qui calcule la strlen

function strlen(strVar) 
{ 
    return(strVar.length) 
} 

Second créer un var tfcount

var tfcount  = strlen(select.value); 

et finaly

textfield.style.width = tfcount < 110 ? tfcount = 110 : 3.5*tfcount+"px"; 
textfield.style.height = tfcount < 110 ? tfcount = 110 : tfcount/2.5+"px"; 
+0

Ce n'est pas une réponse à sa question. OP souhaite redimensionner une zone de texte en fonction du bouton radio sélectionné et non du contenu de la zone de texte. –

+0

D'abord la question ci-dessus n'a pas où un bouton radio. Leur est un champ de sélection avec plusieurs champs d'option. Et la réponse ci-dessus fait exactement ce que la question redimensionnait dynamiquement une zone de texte. – streetparade