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