Limpar modal bootstrap ao fechar
Bom dia
Após selecionar a Pessoa em um formulário, tenho um botão para editar os dados desta pessoa em um Modal:
<span class="input-group-addon"><a href="#" id="btn_editar" class="glyphicon glyphicon-pencil" data-toggle="modal" data-target="#modal_edit_pessoa_red"></a></span>
Busco os dados no BD e preencho os inputs do modal:
<script type="text/javascript">
$(document).ready(function () {
$('#btn_editar').click(function () {
var id = $("#id_cont_hid").val();
var id_cont= JSON.stringify(id);
$.ajax({
type: "POST",
url: "minha_busca_bd?id=" + id,
cache: false,
data: "{'id':'" + id_cont + "'}",
dataType: 'json',
}).done(function(retorno){
if (retorno.inserido == true) {
$('#md_edit_pes_cpf').val(retorno.dados.cpf); // Atualizo valor campo cpf
$("#md_edit_pes_cpf").mask("999.999.999-99"); // Adiciono máscara cpf
}
..........
Em relação aos dados está funcionando corretamente.
O problema é em relação às máscaras de entrada dos campos (cpf) que na primeira vez que for alterar os dados está vindo corretamente, porém, caso tente alterar novamente os dados da mesma pessoa, a máscara não funciona (não vem formatado corretamente).
Outro detalhe é que o modal não está sendo resetado (limpo), principalmente após tentativa de edição e ser mostrada mensagem do arquivo PHP que faz a validação dos dados inseridos, uma vez que ao fechar o modal e ao reabri-lo novamente continua mostrando a mensagem de validação, o que eu não gostaria que acontecesse, mas que cada vez que o modal fosse fechado ou finalizado, limpassem os seus dados, para novamente serem carregados após clicar no botão de edição.
Partes do código que faço a validação do modal:
var serialize_dados = $('#form_mod_pes_edit_red').serialize();
$.ajax({
type: "POST",
url: "arquivo_validar.php",
data: serialize_dados,
dataType: 'json',
encode: true,
cache: false,
}).done(function(retorno){
if (retorno.inserido == true) {
$("#mensagem_edit_pes_red").html("Cadastro alterado com sucesso!");
//auto.trigger('click');
$('#form_mod_pes_edit_red').each (function(){ // Limpar campos do Form
this.reset();
$('#mensagem_edit_pes_red').html("");
$('#form_mod_pes_edit_red')[0].reset();
});
setTimeout(function () {
//$('#modal_edit_pessoa_red').on("hidden.bs.modal", function(){ $(this).removeData(); });
$('#mensagem_edit_pes_red').html(""); // Limpa mensagens
$('#modal_edit_pessoa_red').modal('hide')
//$('#form_mod_pes_edit_red').on('hidden.bs.modal', function () {
//$('#modal_edit_pessoa_red').on('hidden.bs.modal', function(){ $(this).find('form')[0].reset(); });
}, 2000); // 2seg
$('#obs_ped').val("Endereço: "+ retorno.dados.endereco+ " Telefone: "+ retorno.dados.telefone);
}
else{
if (retorno.erros){
$('#mensagem_edit_pes_red').html("");
for(var i=0;i<retorno.erros.length;i++) {
$('#mensagem_edit_pes_red').append(retorno.erros[i] + "<br>");
}
}
else{
$("#mensagem_edit_pes_red").html("Não foi possível completar o cadastro. Tente novamente!");
}
}
});
Já tentei de várias maneiras, porém não consigo encontrar a solução.
No botão fechar do modal também inseri vários códigos para tentar limpar o modal ao sair, porém não obtive sucesso.
Se alguém tiver alguma dica, agradeço.Discussão (2)
Carregando comentários...