Pessoal, boa tarde!
Tenho uma função addCampos(), que cria campos novos em um formulário após seu carregamento.
Na verdade, fiz uma adaptação(copiada) em .innerHtml para criar vários campos de uma vez:
Código (Javascript):
O problema é que um dos campos criados, recebe uma função JQuery que formata campos tipo moeda.
Bom, o formulário, conforme imagem abaixo, possui um bloco de campos inicial (que carrega junto com o forme). E, a partir dele, pode se chamar a função addCampos() para gerar mais um bloco de campos.
Esse bloco que carrega inicialmente, é exatamente igual ao que será criado.
Isto é: possui um campo
Nome Tipo : texto livre
Qtde Pessoas : apenas números
Preço : função JQuery
Descrição texto livre,
Para o bloco que carrega junto com o formulario, tudo funciona bem. Mas com o bloco criado pela função addCampos(), apenas o campo Preço não recebe a função JQuery.
Veja abaixo:
![Imagem Colocada]()
As chamadas aos arquivos JS esta sendo feito assim:
Código (HTML):
Tenho uma função addCampos(), que cria campos novos em um formulário após seu carregamento.
Na verdade, fiz uma adaptação(copiada) em .innerHtml para criar vários campos de uma vez:
Código (Javascript):
function addCampos(campoPai,servico)
{
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 = "<fieldset><legend>Tipo</legend><label class='passo2'>Nome Tipo</label> : <input type='text' id='nomeTipo["+servico+"]["+qtdeCampos+"]' name='nomeTipo["+servico+"]["+qtdeCampos+"]'><br /> <label class='passo2'>Qtde Pessoas</label> : <input type='text' onkeypress='BloqueiaLetras();' id='qtdePessoas["+servico+"]["+qtdeCampos+"]' name='qtdePessoas["+servico+"]["+qtdeCampos+"]'><br /><label class='passo2'>Preço</label> : <input type='text' class='real' id='preco["+servico+"]["+qtdeCampos+"]' name='preco["+servico+"]["+qtdeCampos+"]'><label style='color:red'>formato: 100,00 (por favor! centavos com virgula)</label><br /><label class='passo2'>Descrição</label> : <textarea cols='40' rows='5' id='descricao["+servico+"]["+qtdeCampos+"]' name='descricao["+servico+"]["+qtdeCampos+"]'></textarea><br /></fieldset><input type='button' onclick='removerCampo(this.parentNode.parentNode.id,"+qtdeCampos+")' value='Apagar campo'>";
qtdeCampos++;
}
Essa função esta funcionando corretamente.{
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 = "<fieldset><legend>Tipo</legend><label class='passo2'>Nome Tipo</label> : <input type='text' id='nomeTipo["+servico+"]["+qtdeCampos+"]' name='nomeTipo["+servico+"]["+qtdeCampos+"]'><br /> <label class='passo2'>Qtde Pessoas</label> : <input type='text' onkeypress='BloqueiaLetras();' id='qtdePessoas["+servico+"]["+qtdeCampos+"]' name='qtdePessoas["+servico+"]["+qtdeCampos+"]'><br /><label class='passo2'>Preço</label> : <input type='text' class='real' id='preco["+servico+"]["+qtdeCampos+"]' name='preco["+servico+"]["+qtdeCampos+"]'><label style='color:red'>formato: 100,00 (por favor! centavos com virgula)</label><br /><label class='passo2'>Descrição</label> : <textarea cols='40' rows='5' id='descricao["+servico+"]["+qtdeCampos+"]' name='descricao["+servico+"]["+qtdeCampos+"]'></textarea><br /></fieldset><input type='button' onclick='removerCampo(this.parentNode.parentNode.id,"+qtdeCampos+")' value='Apagar campo'>";
qtdeCampos++;
}
O problema é que um dos campos criados, recebe uma função JQuery que formata campos tipo moeda.
Bom, o formulário, conforme imagem abaixo, possui um bloco de campos inicial (que carrega junto com o forme). E, a partir dele, pode se chamar a função addCampos() para gerar mais um bloco de campos.
Esse bloco que carrega inicialmente, é exatamente igual ao que será criado.
Isto é: possui um campo
Nome Tipo : texto livre
Qtde Pessoas : apenas números
Preço : função JQuery
Descrição texto livre,
Para o bloco que carrega junto com o formulario, tudo funciona bem. Mas com o bloco criado pela função addCampos(), apenas o campo Preço não recebe a função JQuery.
Veja abaixo:

As chamadas aos arquivos JS esta sendo feito assim:
Código (HTML):
<link rel="stylesheet" type="text/css" href="../global/css/body_admin.css" /></link>
<link rel="stylesheet" type="text/css" href="../global/css/menu_admin.css" /></link>
<link rel="shortcut icon" type="image/x-icon" href="../img/favicon.ico" />
<script type="text/javascript" src="../global/funcoes_js/mascara.js"></script>
<script type="text/javascript" src="global/validacoes_js/valida_cad_empresas.js"></script>
<script type="text/javascript" src="global/funcoes_js/buscacidade.js"></script>
<script type="text/javascript" src="global/funcoes_js/bloqueia_letras.js"></script>
<script type="text/javascript" src="../global/funcoes_js/abre_fecha.js"></script>
<script type="text/javascript" src="../global/funcoes_js/jquery.js"></script>
<script type="text/javascript" src="../global/funcoes_js/jquery.maskMoney.js"></script>
<script type="text/javascript" src="../global/funcoes_js/mascara_moeda.js"></script>
<script type="text/javascript" src="../global/funcoes_js/variosInputs.js"></script>
Porque será essa falha? Como concertar!
<link rel="stylesheet" type="text/css" href="../global/css/menu_admin.css" /></link>
<link rel="shortcut icon" type="image/x-icon" href="../img/favicon.ico" />
<script type="text/javascript" src="../global/funcoes_js/mascara.js"></script>
<script type="text/javascript" src="global/validacoes_js/valida_cad_empresas.js"></script>
<script type="text/javascript" src="global/funcoes_js/buscacidade.js"></script>
<script type="text/javascript" src="global/funcoes_js/bloqueia_letras.js"></script>
<script type="text/javascript" src="../global/funcoes_js/abre_fecha.js"></script>
<script type="text/javascript" src="../global/funcoes_js/jquery.js"></script>
<script type="text/javascript" src="../global/funcoes_js/jquery.maskMoney.js"></script>
<script type="text/javascript" src="../global/funcoes_js/mascara_moeda.js"></script>
<script type="text/javascript" src="../global/funcoes_js/variosInputs.js"></script>