2011-08-11 8 views
1

問題は、入力されたパスワードをマスクされたものからマスクされていないものに切り替えるPHP/HTML_Quickformフォームにチェックボックスを追加することです。これはJavaScriptを使用して行うことができますが、フォームにJavaScriptコードを追加する方法と、それをフォーム要素に配線する方法はありますか?HTML_QuickformにJavaScriptを追加するとフォームが生成される

+0

答えを追加し、それを受け入れてください。質問/タスクを質問に、回答を解決策に入れることがベストです。 – cweiske

答えて

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>'); 
関連する問題