2010-07-26 7 views
0

Je n'ai pas deux scripts dans un fichier active_form.jsDeux scripts Javascript ne fonctionne ensemble

Le premier script se cache une entrée de texte lorsqu'un bouton radio est vérifié et le second fait la même chose quand une valeur est sélectionnée dans une liste.

Quand il y a seul, les deux fonctionnent mais ensemble ma fonction GereControleRadio ne fait rien.

éditer: les deux scripts sont appelés dans le même formulaire.

Le code de mes scripts:

function GereControleRadio(Controleur, LabelControle, Controle, Masquer) { 
    var objLabelControle = document.getElementById(LabelControle); 
    var objControle = document.getElementById(Controle); 

    if (Masquer=='1') { 
     objControle.style.visibility=(objControleur.checked==true)?'visible':'hidden'; 
     objLabelControle.style.visibility=(objControleur.checked==true)?'visible':'hidden'; 
    } 
    else { 
     objControle.disabled=(objControleur.checked==true)?false:true; 
     objLabelControle.disabled=(objControleur.checked==true)?false:true; 
    } 

    return true; 
}; 

function GereControleList(LabelControle, Controle, val) { 
    var objLabelControle = document.getElementById(LabelControle); 
    var objControle = document.getElementById(Controle); 

    if (val != '1% Patronal') { 
     objControle.style.visibility='hidden'; 
     objLabelControle.style.visibility='hidden'; 
    } 
    else { 
     objControle.style.visibility='visible'; 
     objLabelControle.style.visibility='visible'; 
    } 

    return true; 
}; 

.js est appelé dans mon view.yml

Et j'appelle les fonctions:

echo $form['etage']->render(array("onCLick" => "GereControleRadio('logement_etage_Etage', 'numetage_label', 'numetage_form, '1');")) 

echo $form['reservataire']->render(array("onChange" => "GereControleList('patronal', 'patronal_form', 'this.value');")) 

Répondre

0

J'ai trouvé l'erreur: dans GereControleRadio, j'ai supprimé une ligne.

var objControleur = document.getElementById(Controleur); 
1

Je crois que vous avez juste 2 fonctionne avec des noms de variables d'étendue globale conflictuels. Essayez de remplacer « GereControleList » avec ce ...

function GereControleList(LabelControle, Controle, val) { 
    var objLabelControle_ = document.getElementById(LabelControle); 
    var objControle_ = document.getElementById(Controle); 

    if (val != '1% Patronal') { 
     objControle_.style.visibility='hidden'; 
     objLabelControle_.style.visibility='hidden'; 
    } 
    else { 
     objControle_.style.visibility='visible'; 
     objLabelControle_.style.visibility='visible'; 
    } 

    return true; 
}; 
+0

J'ai essayé mais j'ai le même problème: GereControleRadio ne fonctionne pas. – Elorfin