Ir para conteúdo

Arquivado

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

maxpereira

Executar plugin JS no innerHTML

Recommended Posts

Olá pessoal, tudo bem?

Estou criando um formulário, e preciso usar máscaras para o rg, cpf, etc, então utilizei um plugin JS que encontrei, e funcionou belezinha.

O problema é que precisei criar campos dinamicamente, e encontrei uma função JS que funcionou muito bem, mas os campos criados pela função não executam o plugin de máscaras. 

Eu manjo quase nada de JS, mas pesquisando encontrei que o innerHTML não executa scripts no HTML5, e que existe um jeito, mas não encontrei haha .

Enfim, se alguém puder me ajudar agradeço muito, vou deixar o código abaixo (é bem simples), só copiar e colar e baixar o plugin do git que funciona.

 

o plugin JS que utilizei para gerar as máscaras:
github.com/igorescobar/jQuery-Mask-Plugin

 

<html>
<head>
    <meta charset="utf-8">
    <script type="text/javascript" src="_js/jquery-3.3.1.js"></script>
    <script src="_js/jquery.mask.js"></script>

    <script>
       

    </script>

    <script type="text/javascript">

        $(document).ready(function(){
            
             $('.rg').mask('00.000.000');
             $('.cpf').mask('000.000.000-00');
             
        });

        var qtdeCampos = 0;
        function addAdmin() {


            var objPai = document.getElementById("campoPai");
            //Criando o elemento DIV;
            var objFilho = document.createElement("div");
            //Definindo atributos ao objFilho:
            objFilho.setAttribute("id","filho"+qtdeCampos);

            //Inserindo o elemento no pai:
            objPai.appendChild(objFilho);
            //Escrevendo algo no filho recém-criado:
            document.getElementById("filho"+qtdeCampos).innerHTML = "<br><label>Preencha os Dados:<label><br> <label>RG:</label> <input type='text' name='campoAdmin[]' class='rg'  placeholder='Ex: 12.345.678' required autocomplete='off' size='10'> <label>CPF:</label> <input type='text' name='campoAdmin[]' class='cpf' size='13' placeholder='Ex: 123.456.789-16' required><br> <input type='button' onClick='removerAdmin("+qtdeCampos+")' value='Remover Administrador'>";
            qtdeCampos++;
        }

        function removerAdmin(id) {
            var objPai = document.getElementById("campoPai");
            var objFilho = document.getElementById("filho"+id);

            //Removendo o DIV com id específico do nó-pai:
            var removido = objPai.removeChild(objFilho);
        }
</script>
</head>
<body>

<form name="form1" action="pegardados.php" method="post">
    
    <label>Preencha os Dados:<label><br>
    <label>RG:</label> <input type='text' name='campoAdmin[]' class='rg'  placeholder='Ex: 12.345.678' required autocomplete='off' size='10'> 
    <label>CPF:</label>
    <input type='text' name='campoAdmin[]' class='cpf' size='13' placeholder='Ex: 123.456.789-16' required>

    <div id="campoPai"></div>
    <input type="button" value="Adicionar campos" onclick="addAdmin()">
    <br><br><input type="submit" value="Enviar">

</form>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por juniormatrix
      Olá
       
      Achei esse script aqui no fórum mesmo:
       
      $.validator.addMethod( "customEmail", function (value, element) { return this.optional(element) || /^[\w-\.]+@fulano\.com\.br$/i.test(value); }, "Por favor, insira um e-mail válido com o domínio @fulano.com.br" ); $("#formulario").validate({ ignore: ".ignore", rules: { empresa: { required: true }, nome: { required: true }, contato: { required: true }, celular: { required: true }, email: { required: true, email: true, customEmail: true }, }, }); Testei e funcionou perfeitamente, mas gostaria que liberasse mais e-mails válidos, ao invés de apenas um.

      Tem como fazer? 
       
      Se alguém puder ajudar, fico muito grato.
    • Por Alessandro Bodão
      Salve galerinha, passando pra mostrar pra vocês o novo projeto de marca que a Jatobá Estúdio desenvolveu, espero que gostem.   https://www.behance.net/gallery/166555627/Fernanda-Pinheiro-Nutricionista-Esportiva
    • Por rogerblower
      Boas pessoal, estou precisando de um calendário para agenda com crud para agendamento, mas teria que ser free.
      Obrogado.
    • Por Sapinn
      Fala galera! Tenho um site que possui alguns icones que são puxados da biblioteca flaticon , o problema é que de uma hora pra outra esses icones pararam de aparecer. No meu ambiente local funciona, mas no ambiente de produção eles não aparecem e eu recebo o seguinte erro no console: Failed to load resource: the server responded with a status of 404 () 
       
      Alguém saberia como resolver isso?
    • Por mateus.andriollo
      Carrego um conteudo Ajax e junto com ele vem HTML e JS, existe um marcador que está relacionado a um elemento HTML, quando eu clico e este elemento tem um atributo exemplo data-onload="funcaoOla()" esta função tbm carregada pelo ajax deve ser executada.
       
      Dúvida como eu faço uma chama de função desta forma, seria como exec("funcaoOla")
       
×

Informação importante

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