Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou com um arquivo em PHP que define um formulário. Agora quero adicionar uma máscara javascript para formatar campos de formulário.
Só que gostaria de definir o codido javascript em um arquivo separado e dentro do arquivo PHP ( q define o formulário ) eu pretendo fazer uma chamada ao arquivo javascript. Sendo assim, gostaria de saber como fica a linha de chamada dentro do PHP.
Segue o a máscara que pretendo criar:
<html>
<head>
<title>formatado data em javascript</title>
<script type="text/javascript">
function Formatadata(Campo, teclapres)
{
var tecla = teclapres.keyCode;
var vr = new String(Campo.value);
vr = vr.replace("/", "");
vr = vr.replace("/", "");
vr = vr.replace("/", "");
tam = vr.length + 1;
if (tecla != 8 && tecla != 8)
{
if (tam > 0 && tam < 2)
Campo.value = vr.substr(0, 2) ;
if (tam > 2 && tam < 4)
Campo.value = vr.substr(0, 2) + '/' + vr.substr(2, 2);
if (tam > 4 && tam < 7)
Campo.value = vr.substr(0, 2) + '/' + vr.substr(2, 2) + '/' + vr.substr(4, 7);
}
}
</script>
</head>
<body>
<form method="post" action="arquivo.php">
<p>
<label>Data:</data>
<input type="text" name="data" maxlength="10" onkeyup="Formatadata(this,event)" />
</p>
</form>
</body>
</html>cria o arquivo
joga o conteúdo, que no seu caso é
function Formatadata(Campo, teclapres){
var tecla = teclapres.keyCode;
var vr = new String(Campo.value);
vr = vr.replace("/", "");
vr = vr.replace("/", "");
vr = vr.replace("/", "");
tam = vr.length + 1;
if (tecla != 8 && tecla != 8){
if (tam > 0 && tam < 2)
Campo.value = vr.substr(0, 2) ;
if (tam > 2 && tam < 4)
Campo.value = vr.substr(0, 2) + '/' + vr.substr(2, 2);
if (tam > 4 && tam < 7)
Campo.value = vr.substr(0, 2) + '/' + vr.substr(2, 2) + '/' + vr.substr(4, 7);
}
}
e salva com extensão js
e no arquivo onde quizer utilizar é só adicionar a linha
<script type="text/javascript" src="nome_arquivo.js"></script>
aproveitando a oportunidade
troca essa linha
var tecla = teclapres.keyCode;
por essa que é compatível com todos os navegadores
var tecla = document.all ? teclapres.keyCode : teclapres.which;
Hum.. mto bom!
Só resta uma pequena dúvida: no exemplo que postei, o formulário está definido em HTML
<body>
<form method="post" action="arquivo.php">
<p>
<label>Data:</data>
<input type="text" name="data" maxlength="10" onkeyup="Formatadata(this,event)" />
</p>
</form>
</body>
Mas no meu caso estou usando PHP, onde a definição do campo é assim:
// cria os campos do formulário
$data_ini = new TEntry('data_ini');
$data_fim = new TEntry('data_fim');
Nesse caso, como faço para alterar
<input type="text" name="data" maxlength="10" onkeyup="Formatadata(this,event)" />
para a definção em php acima???
Não duplique uma mesma dúvida pelo fórum.
Continue apenas com o tópico q foi postado na área correta
http://forum.imasters.com.br/topic/450608-definir-script-separado/
depois eu faço um merge.
[Trancado]
ai você precisa ver se essa class TEntry possui esse tipo de opção.
Se não, você terá q adaptar ela, ou parar de usá-la.
Valeu mano!!
Só mais uma dúvida: no meu caso a criação dos campos do formulário tá assim:
// cria os campos do formulário
$data_ini = new TEntry('data_ini');
$data_fim = new TEntry('data_fim');
Nesse caso como é que faço a chamada ao método de formatação nesse campo??
ou seja, quero mudar o html abaixo, para o PHP
<p>
<label>Data:</data>
<input type="text" name="data" maxlength="10" onkeyup="Formatadata(this,event)" />
</p>
---
Pronto, vou tentar simplificar meu questionamento:
Em meu arquivo PHP tenho aseguinte definição um campo:
// cria os campos do formulário
$data_ini = new TEntry('data_ini');
Quero que ao digitar a data no referido campo, altomaticamente a data fique no formato (dd/mm/aaaa). Só é possivel fazer isso com javascript??
o arquivo js fica:
formata.js
function Formatadata(Campo, teclapres)
{
{
e o 'php'(na verdade html), fica:
<script type="text/javascript" src="formata.js"></script>