web-dev-qa-db-fra.com

Comment masquer / afficher les champs de saisie dans le formulaire?

Bonne journée les gars,

J'ai ce code ici en javascript pour cacher/montrer un champ de saisie:

function HideShow()
{
    var Type = document.getElementById("jform_subscription_type");

    if(Type.value=="RDS")
    {
        var x = document.getElementById("jform_frequency").style.display = 'block';         
    }
    else
    {
        var y =document.getElementById("jform_frequency").style.display = 'none';           
    }   
}

Maintenant ce code fonctionne bien. Mais dans ma forme, ça devient comme ça: enter image description here

le champ de saisie est en train de doubler. Lorsque je supprime ce code ci-dessous dans mon formulaire, mon code javascript ne fonctionne pas.

<div class="control-group">
    <div class="control-label"><?php echo $this->form->getLabel('frequency'); ?>    </div>
    <div class="controls"><?php echo $this->form->getInput('frequency'); ?></div>
</div>

Comment puis-je faire en sorte que mon code javascript masque l'entrée pour la fréquence avec le code ci-dessus?

3
Break the Law

J'ai eu la réponse. Il me suffit de définir un identifiant pour la div contenant le champ de saisie que je souhaite masquer et afficher:

   <div class="control-group" id ="freq" style = "display:none">
    <div class="control-label"><?php echo $this->form->getLabel('frequency'); ?></div>
    <div class="controls"><?php echo $this->form->getInput('frequency'); ?></div>
</div>

et puis sur ma fonction javascript, au lieu du champ lui-même, je vais utiliser l'identifiant div.

4
Break the Law