RS
colocar mascara cpf/cnpj conforme pessoa fisica ou juridica
peguei esta função javascript só que está dando ERRO ao carregar o formulário,
$script = new TElement('script');
$script->type = 'text/javascript';
$javascript = "
$('select[name="pessoa"]').change(function(event){
var tipoPessoa
$('select[name="pessoa"] > option:selected').each(function(){
tipoPessoa = $(this).text();
});
if(tipoPessoa == 'F') {
$('input[name="cpf_cnpj"]').val('');
$('input[name="cpf_cnpj"]').attr({onkeypress:'return tentry_mask(this,event,"999.999.999-99")'});
}
if(tipoPessoa == 'J') {
$('input[name="cpf_cnpj"]').val('');
$('input[name="cpf_cnpj"]').attr({onkeypress:'return tentry_mask(this,event,"99.999.999/9999-99")'});
}
});
";
$script->add($javascript);
parent::add($script);
$script = new TElement('script');
$script->type = 'text/javascript';
$javascript = "
$('select[name="pessoa"]').change(function(event){
var tipoPessoa
$('select[name="pessoa"] > option:selected').each(function(){
tipoPessoa = $(this).text();
});
if(tipoPessoa == 'F') {
$('input[name="cpf_cnpj"]').val('');
$('input[name="cpf_cnpj"]').attr({onkeypress:'return tentry_mask(this,event,"999.999.999-99")'});
}
if(tipoPessoa == 'J') {
$('input[name="cpf_cnpj"]').val('');
$('input[name="cpf_cnpj"]').attr({onkeypress:'return tentry_mask(this,event,"99.999.999/9999-99")'});
}
});
";
$script->add($javascript);
parent::add($script);
Qual erro?
ele da simplismente ERRO e não abre
se tem algum exemplo de como posso fazer isso?
Vc comenta que simplesmente dá erro, mas não exibe nenhuma exception?
Posta o código completo.
Vc comenta que simplesmente dá erro, mas não exibe nenhuma exception?
Posta o código completo.
Tenta usar essa :
Estou reenviando em texto puro, pois o "escape" não foi corretamente exibido.
$script = new TElement('script');
$script->type = 'text/javascript';
$javascript = "
$(document).on('change','select[name="tipo_pessoa_id"]' , function(event){
//alert('Entrou');
$('input[name="cpf_cnpj"]').val('');
$('select[name="tipo_pessoa_id"] > option:selected').each(function(){
tipoPessoa = $(this).text();
});
if(tipoPessoa.toLowerCase() == 'física') {
$('input[name="cpf_cnpj"]').val('');
$('input[name="cpf_cnpj"]').attr({onkeypress:'return tentry_mask(this,event,"999.999.999-99")'});
}
if(tipoPessoa.toLowerCase() == 'jurídica') {
$('input[name="cpf_cnpj"]').val('');
$('input[name="cpf_cnpj"]').attr({onkeypress:'return tentry_mask(this,event,"99.999.999/9999-99")'});
}
});";
Bom, novamente o escape não funcionou.
Mas em 'select[name=\"tipo_pessoa_id\"]'
Antes das aspas duplas deve ser "escapado" com barra invertida.
Eu uso este código e funciona muito bem.
O meu ta assim com seus mesmos dados, apenas com $pessoa = new TCombo('pessoa');
$javascript = "
$('select[name="pessoa"]').change(function(event){
var tipoPessoa
$('select[name="pessoa"] > option:selected').each(function(){
tipoPessoa = $(this).text();
});
if(tipoPessoa == 'Física') {
$('input[name="cpf_cnpj"]').val('');
$('input[name="cpf_cnpj"]').attr({onkeypress:'return tentry_mask(this,event,"999.999.999-99")'});
}
if(tipoPessoa == 'Jurídica') {
$('input[name="cpf_cnpj"]').val('');
$('input[name="cpf_cnpj"]').attr({onkeypress:'return tentry_mask(this,event,"99.999.999/9999-99")'});
}
});
";
Lógico que com os caracteres de escape...
Testando com o code:
Também corta os caracteres de escape...
Nenhum exception é exibida?
Comigo funciona.
Estou num curso agora assim que possível posto meu código.
ai deu: Parse error: syntax error, unexpected 'cpf_cnpj' (T_STRING) in C:wampwwwadm_contratosappcontrolLocadoresForm.class.php on line 62
$('select[name="pessoa"]').change(function(event){
var tipoPessoa
$('select[name="pessoa"] > option:selected').each(function(){
tipoPessoa = $(this).text();
});
if(tipoPessoa == 'F') {
$('input[name="cpf_cnpj"]').val('');
$('input[name="cpf_cnpj"]').attr({onkeypress:'return tentry_mask(this,event,"999.999.999-99")'});
}
if(tipoPessoa == 'J') {
$('input[name="cpf_cnpj"]').val('');
$('input[name="cpf_cnpj"]').attr({onkeypress:'return tentry_mask(this,event,"99.999.999/9999-99")'});
}
});
";
$script->add($javascript);
Posta a linha 62 do erro.
Pois no código original que postou não deu pra identificar.
A linha 62 faz referência ao script.
quando você falam que tenho que colocar escape é onde?
é nestas duas linhas?
$('select[name="pessoa"]').change(function(event){
var tipoPessoa
$('select[name="pessoa"] > option:selected').each(function(){
tipoPessoa = $(this).text();
});
o erro esta dando na linha
$('input[name="cpf_cnpj"]').val('');
$('input[name="cpf_cnpj"]').attr({onkeypress:'return tentry_mask(this,event,"999.999.999-99")'});
}
Sim, você deve colocar a barra invertida antes das aspas duplas quanto está dentro de outra aspas.
Por exemplo [name="cpf_cnpj"] o mesmo para pesssoa.
Novamente o navegador interpretou o escape.
Vou tentar o code.
pessoal obrigado pela ajuda, o problema era que eu pesava que o tipopessoa = $(this).text() pegasse o ['F'] ou ['J'] mas ele pega o Físico e Jurídico e estava testando se fosse igual a 'F' ou 'J' e tem que ser 'Jurídica' ou 'Física'.
Muito obrigado.
agora gostaria de validar, se o CPF ou CNPJ é válido, vi que poderia usar o $cpf_cnpj->addValidation('cpf_cnpj', new TCPFValidator) mas o problema que tenho que fazer conforme o tipopessoa.