将JavaScript添加到HTML_Quickform生成的表单

时间:2011-08-11 10:45:07

标签: php pear

问题是在PHP / HTML_Quickform表单中添加一个复选框,用于切换从屏蔽到未屏蔽和返回的密码输入。这可以使用JavaScript完成,但是如何将JavaScript代码添加到表单以及如何将其连接到表单元素?

1 个答案:

答案 0 :(得分:1)

嗯,代码可以通过静态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>');