Два сценария Javascript не работают вместе - PullRequest
0 голосов
/ 26 июля 2010

У меня есть два скрипта в файле active_form.js

Первый скрипт скрывает текстовую запись при проверке радиокнопки, а второй делает то же самое, когда значение выбирается в списке.

Когда есть одни, оба работают, но вместе моя функция GereControleRadio ничего не делает.

edit: оба сценария вызываются в одной форме.

Код моих скриптов:

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 вызывается в моем view.yml

И я вызываю функции:

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');"))

Ответы [ 2 ]

1 голос
/ 26 июля 2010

Полагаю, у вас просто есть 2 функции с конфликтующими именами переменных глобальной области видимости.Попробуйте заменить "GereControleList" этим ...

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 голосов
/ 26 июля 2010

Я нашел ошибку: в GereControleRadio я удалил строку.

var objControleur = document.getElementById(Controleur);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...