Добавление JavaScript в сгенерированные формы HTML_Quickform - PullRequest
1 голос
/ 11 августа 2011

Проблема заключается в добавлении флажка в форму PHP / HTML_Quickform, который переключает ввод пароля с маскированного на немаскированный и обратно. Это можно сделать с помощью JavaScript, но как добавить код JavaScript в форму и как связать его с элементами формы?

1 Ответ

1 голос
/ 17 августа 2011

Ну, код может быть добавлен через статический элемент Quickform, а подключение может быть выполнено с помощью массивов атрибутов.

Вот код для элементов формы:

    $this->addElement('password', 'password', 'Password:', array('id'=>'id_password'));
    $this->addElement('checkbox', 'unmask', 'Unmask password:', '', array('onclick'=>'togglePasswordMask(\'id_password\')', 'id'=>'id_passwordunmask')); 

и вот код для добавления JavaScript, который выполняет эту работу:

    $this->addElement('static', null, '', 
            '<script type="text/javascript">
            //<![CDATA[
            function togglePasswordMask(id) {
                var pw = document.getElementById(id);
                var chb = document.getElementById(id+\'unmask\');   
                var newpw = document.createElement(\'input\');

                newpw.setAttribute(\'name\', pw.name);

                if (chb.checked) {
                    newpw.setAttribute(\'type\', \'text\');
                } else {
                    newpw.setAttribute(\'type\', \'password\');
                }

                newpw.id = pw.id;
                newpw.value = pw.value;
                pw.parentNode.replaceChild(newpw, pw);
            }
            //]]>
            </script>');
...