Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde pessoal!
Inicialmente postei na home do Fórum, mais como vi que a dúvida passou de um simples questionamento para algo mais complexo, resolvi postar aqui, mais vamos a ela:
Eu tenho um formulário onde eu posto documentos, com o seguintes campos:
/applications/core/interface/imageproxy/imageproxy.php?img=http://www.fernandotholl.net/imagens/protocolo-1.jpg&key=1f5f1eb06fe89315466037262759e8350cfaed43a072fc650f9b215a6afe9a7d" alt="protocolo-1.jpg" />
O Primeiro campo (data) possui um plugin do jQuery UI, que se chama datepicker.
/applications/core/interface/imageproxy/imageproxy.php?img=http://www.fernandotholl.net/imagens/protocolo-2.jpg&key=4aff2cd1a2ac52b7f4cb83e426479c257d7e48a473cdd4cf21dc765f5569821c" alt="protocolo-2.jpg" />
Na segunda imagem, mostra o segundo plugin que eu utilizo nesse formulário, que é o tokenInput (Auto-complete)
Até ai tudo bem, o problema é que eu posso adicionar mais de uma linha a cada vez, por isso existe o botão (+) Adicionar, e o botão copia exatamente a ultima <tr> da tabela e adiciona um novo id a ele.
/applications/core/interface/imageproxy/imageproxy.php?img=http://www.fernandotholl.net/imagens/protocolo-3.jpg&key=56ae371a8186f5d02b3509a72c350529a73e563fd804df2092fd071eb1df0a7f" alt="protocolo-3.jpg" />
Vejam na imagem, os campos de data e auto-complete não funcionam, apenas o primeiro, isso porque esses elementos foram criados depois do DOM, via JavaScript.
Minha pergunta, como fazer esses dois plugins (datepicker e tokenInput) em elementos que foram criados depois do DOM?
Meus códigos:
$(".emitente").tokenInput("ajax/getProtocoloEmitente.php", {
hintText: "Nome ou CNPJ..",
noResultsText: "Nenhum resultado",
searchingText: "Carregando...",
deleteText: "x",
preventDuplicates: false,
enableCache: false,
tokenLimit: 1
});
/ Auto-complete destinatário /
$(".destinatario").tokenInput("ajax/getProtocoloDestinatario.php", {
hintText: "Nome ou CNPJ..",
noResultsText: "Nenhuma resultado",
searchingText: "Carregando...",
deleteText: "x",
preventDuplicates: false,
enableCache: false,
tokenLimit: 1
});
$(".campoData").datepicker({
dateFormat: 'dd/mm/yy',
dayNames: ['Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado','Domingo'],
dayNamesMin: ['D','S','T','Q','Q','S','S','D'],
dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb','Dom'],
monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set','Out','Nov','Dez'],
nextText: 'Próximo',
prevText: 'Anterior'
});
$('.botao-adicionar').click(function(event){
event.preventDefault();
var quantidade = intval($('.documento:last').attr('item'));
var novoID = quantidade + 1;
var html = '<tr item="'+novoID+'" class="documento">'
+ '<td align="center" valign="middle"> '
+ '<input type="hidden" name="tabela" value="" item="'+novoID+'" /> '+novoID
+ '</td>'
+ '<td align="center" valign="middle">'
+ '<select name="tipo_documento_'+novoID+'" item="'+novoID+'" class="campoDocumento">'
+ '<option value="0">Selecione...</option>'
+ '<option value="1">Alvará de Funcionamento Municipal</option>'
+ '<option value="2">Alvará Sanitário Municipal</option>'
+ '<option value="3">Autorização ANVISA</option>'
+ '<option value="4">Certificado de Boas Práticas</option>'
+ '<option value="5">Certificado de Responsabilidade Técnica</option>'
+ '<option value="6">Carta de Autorização</option>'
+ '<option value="7">Alteração Contratual</option>'
+ '<option value="8">Cartão CNPJ</option>'
+ '<option value="9">Certidão FGTS</option>'
+ '<option value="10">Certidão Negativa Estadual</option>'
+ '<option value="11">Certidão Negativa Federal</option>'
+ '<option value="12">Certidão Negativa Municipal</option>'
+ '<option value="13">Comprovante de endereço</option>'
+ '<option value="14">Contrato Social</option>'
+ '<option value="15">Cópia do Diário Oficial da União</option>'
+ '<option value="16">Dados Cadastrais</option>'
+ '<option value="17">Inscrição Estadual</option>'
+ '<option value="18">Inscrição Federal</option>'
+ '<option value="19">Inscrição Municipal</option>'
+ '<option value="20">Tabela de Materiais</option>'
+ '</select>'
+ '</td>'
+ '<td align="center" valign="middle"><input type="text" item="'+novoID+'" name="numero_documento_'+novoID+'" class="campo-cadastro" /></td>'
+ '<td align="center" valign="middle"><input type="text" item="'+novoID+'" name="data_emissao_'+novoID+'" class="campo-cadastro campoData" /></td>'
+ '<td align="center" valign="middle"><input type="text" item="'+novoID+'" name="data_vencimento_'+novoID+'" class="campo-cadastro campoData" /></td>'
+ '<td align="center" valign="middle"><input type="text" item="'+novoID+'" name="emitente_'+novoID+'" class="emitente campo-cadastro" /></td>'
+ '<td align="center" valign="middle"><input type="text" item="'+novoID+'" name="destinatario_'+novoID+'" class="destinatario campo-cadastro" /></td>'
+ '<td align="center" valign="middle">'
+ '<select name="situacao_'+novoID+'" class="estilo-select" item="'+novoID+'">'
+ '<option value="1">Ativo</option>'
+ '<option value="2">Inativo</option>'
+ '</select>'
+ '</td>'
+ '<td align="center" valign="middle">'
+ '<select name="justificativa_'+novoID+'" class="estilo-select" item="'+novoID+'">'
+ '<option value="1">Cancelado</option>'
+ '<option value="2">Duplicidade</option>'
+ '</select>'
+ '</td>'
+ '</tr>';
$('.documento:last').after(html);
HTML
<table class="tabela_fixed add-cores" style="margin-top:10px;" class="documentos">
<thead>
<tr>
<td>#</td>
<td>Tipo de documento</td>
<td>Número do documento</td>
<td>Data emissão</td>
<td>Data vencimento</td>
<td>Emitente</td>
<td>Destinatário</td>
<td>Situação</td>
<td>Justificativa</td>
</tr>
</thead>
<tr item="1" class="documento">
<td align="center" valign="middle">
1
</td>
<td align="center" valign="middle">
<select name="tipo_documento_1" item="1" class="campoDocumento">
<option value="0">Selecione...</option>
</select>
</td>
<td align="center" valign="middle"><input type="text" item="1" name="numero_documento_1" class="campo-cadastro" /></td>
<td align="center" valign="middle"><input type="text" item="1" name="data_emissao_1" class="campo-cadastro campoData" /></td>
<td align="center" valign="middle"><input type="text" item="1" name="data_vencimento_1" class="campo-cadastro campoData" /></td>
<td align="center" valign="middle"><input type="text" item="1" name="emitente_1" class="emitente campo-cadastro" /></td>
<td align="center" valign="middle"><input type="text" item="1" name="destinatario_1" class="destinatario campo-cadastro" /></td>
<td align="center" valign="middle">
<select name="situacao_1" class="estilo-select" item="1">
<option value="1">Ativo</option>
<option value="2">Inativo</option>
</select>
</td>
<td align="center" valign="middle">
<select name="justificativa_1" class="estilo-select" item="1">
<option value="1">Cancelado</option>
<option value="2">Duplicidade</option>
</select>
</td>
</tr>
</tbody>
</table>
<button class="botao-adicionar">(+) Adicionar</button>
<button class="botao-salvar">Salvar Documentos</button>
<div class="clear"></div>
Já tentei com o live, delegate, on ajaxStop, porém não se se estava correto, ou se essas funções realmente não funcionam nesses casos.
Fico aguardando a ajuda de vocês, obrigado.
Carregando comentários...