quinta-feira, 1 de março de 2007

OpenLaszlo: exemplo de campo com Mascara

algo útil e que normalmente iremos nos deparar é com a necessidade de um campo com mascara para entrada de data, hora, CEP, CPF, entre outros tipos de entradas formatadas...

neste exemplo é um bem simples de como implementar um campo de mascara para CPF
onde a mascara é: xxx.xxx.xxx-xx, porém este exemplo não trata a entrada de teclado a qual também poderia ser incluída de modo simples



[Fonte]


<canvas width="200">
<view width="115" height="20" bgcolor="gray">
        <inputtext
            name="field"
            bgcolor="white"
              x="1" y="1"
              width="$once{parent.width-2}"
              height="$once{parent.height-2}" maxlength="14">
              
              <method name="init"><![CDATA[
                  super.init();
              ]]></method>
              <method event="onkeydown" args="akeycode"><![CDATA[
                Debug.write( String.fromCharCode(akeycode) + " : " + akeycode + " >> " + this.getText() );
                
                // tecla backspace
                if( akeycode != 8 ) {
                    
                    switch( this.getText().length ) {
                        case 3:
                            this.addText( "." );
                            break;
                        case 7:
                            this.addText( "." );
                            break;
                        case 11:
                            this.addText( "-" );
                            break    
                    }
                var lastP = this.getText().length;
                this.setSelection( lastP, (lastP+1) );                  
                }           
                ]]></method>
              <!-- @END: métodos do inputtext -->
          </inputtext>
</view>
</canvas>