Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rafael Fernandes_150844

[Resolvido] Executar função depois de outra Jquery

Recommended Posts

É o seguinte, tenho o plugin jquery.maskedinput, que adiciona mascaras aos campos

 

funciona legal ...

 

só que em um sistema que estou fazendo tem uma função de adicionar campos extras, ai a pessoa clica em um botão que faz esta função e ele adiciona campos de dados a mais, só que o erro aparece ai, os campos de datas adicionados depois não funcionam a mascara, já tentei fazer a chamada depois de add o campo mas mesmo assim não funcionou ;s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lembra que os `IDs` não podem se repetir em um documento? Talvez seja isso, eu não sei se esse plugin funciona com `Classes`, mas vale a pena conferir.

 

Boa sorte!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Provavelmente funciona sim porque a maioria dos plugins têm seus métodos atrelados à um objeto retornado por um seletor.

 

e como o tal objeto provém do $() nativo da jQuery, contanto que seja um seletor válido, funcionará independente do plugin.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Checnado o CSS Cheat Sheet da Added Bytes, aos se construir um seletor baseado no valor de um atributo, deve se usar aspas simples ao redor do valor.

 

Em sendo assim, seria:

 

$("input[rel='data']").mask("99/99/9999")

Mas, qual o problema de adicionar um classe à esses campos?

 

Eu acho que fica até mais semântico...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O rel é porque eu acrescendo la no index a função

 

$('input[rel=data]').mask("99/99/9999");

 

ai é só eu adicionar nos campos o rel="data" que a a mascara vai funcionar nele, se eu colocasse por classe, teria que adicionar várias vezes o código da mascara ...

 

e o problema ACHO que não vem do selector, porque o erro aparece quando eu por meio do JQuery usando o append adiciono outros campos ao formulário, e esses iguais aos outros que estavam e nesses novos que adicionei a mascara não funciona, parece que ele não pega os códigos inseridos antes

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já experimentou atrelar esse mask através do jQuery.live()

 

Como não sei qual é esse plugin, não tenho como testar mas, talvez isso funcione:

 

$( "input[rel='data']" ).live( 'load', function() {

   $( this ).mask( '99/99/9999' );
});

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então mostra omo que você está fazendo essa adição dinâmica.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse é o código do campo

 

<p class="pCampo" rel="dataInicial">
<input type="text"  name="dataInicial" rel="data">
</p>

<div class="adcLocal">

</div>

 

 

ai no javascript a função é essa

 

$dataInicial = $('.pCampo[rel=dataInicial]').html();
$('.adcLocal').append($dataInicial);

 

fazendo com o appendTo a mascara funcionou, mas ai ele recorta o elemento

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na boa, cara, ainda não consegui reproduzir o seu problema.

 

Fiz umas simulações aqui, mas não se é bem isso que te aflige.

 

Tem o HTML, com um valor qualquer que, no load recebe a máscara. Daí logo em seguida ele é movido do <p> para a <div> e a máscara continua funcionando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpem a demora

 

Bruno, ai ele apenas substitui, eu quero que ele copie o elemento pra div adcLocal entendeu?

 

Acho que achei o problema, e o problema está no tinymce, quando eu executo essa função, mesmo sendo em outro campo, não funciona a mascara

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.