Como usar "máscaras" em campos de formulário do Cake com plugin maskedinput pra jQuery
Postado por Carlitos | Tags cakephp , jquery , mascara , maskedinput | Postado em 17:45
0
Bom, antes de começar dá um play nesse som =]
2) Em uma view qualquer (escolhi a app/views/users/add.ctp) gerada via BAKE eu criei três campos: dtNasc, cpf e hora. Vejam:
<?php
//... app/views/users/add.ctp
...
echo $this->Form->input('dtnasc',
array(
'label' => 'Data de Nascimento'
)
);
echo $this->Form->input('cpf',
array(
'label' => 'CPF'
)
);
echo $this->Form->input('hora',
array(
'label' => 'Hora'
)
);
...
?>
<?php //... app/views/users/add $javascript->link( array( 'https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js', 'jquery.maskedinput' ), false); ... ?>
<?php
//... app/views/users/add.ctp
...
$javascript->codeBlock('
jQuery(function($){
$("#UserDtnasc").mask("99/99/9999");
$("#UserCpf").mask("999.999.999-99");
$("#UserHora").mask("99:99");
});
', array('inline' => false));
...
?>
5) Pronto! Simples não? Repare que ao colocar o cursor do mouse sobre os campos a "máscara" já é mostrada. Isso facilita muito para o usuário, uma vez que ele já prevê como os valores serão formatados (mascarados). Vejam o código final da view:
<?php
//... app/views/users/add.ctp
$javascript->link(
array(
'https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js',
'jquery.maskedinput'
),
false);
$javascript->codeBlock('
jQuery(function($){
$("#UserDtnasc").mask("99/99/9999");
$("#UserCpf").mask("999.999.999-99");
$("#UserHora").mask("99:99");
});
', array('inline' => false));
?>
<div class="users form">
<?php echo $this->Form->create('User');?>
<fieldset>
<legend><?php __('Add User'); ?></legend>
<?php
echo $this->Form->input('dtnasc',
array(
'label' => 'Data de Nascimento'
)
);
echo $this->Form->input('cpf',
array(
'label' => 'CPF'
)
);
echo $this->Form->input('hora',
array(
'label' => 'Hora'
)
);
?>
</fieldset>
<?php echo $this->Form->end(__('Submit', true));?>
</div>
Bom, espero que tenham gostado! Apesar de ser "perfumaria", muitas vezes os recursos de máscara facilitam a vida do usuário. Só não pode esquecer de tratar os dados no server-side, pois o usuário pode estar com o javascript desabilitado, ok? =P





