Quantcast
Channel: Tópicos
Viewing all articles
Browse latest Browse all 14700

Validação de campos criados via função

$
0
0
Olá amigos. Bom dia!

Tenho uma função que cria ( e cria mesmo) um bloco de campos.

Antes disso, para cada bloco, eu crio com php blocos.
PHP:
Código (PHP):
<?php  
                 $contador2=0;
$string_array = implode('|', $_POST["servico"]);
foreach($_POST["servico"] as $servico)
{
$nomeServicoString="SELECT nome FROM servicos WHERE id=".$servico;
$nomeServicoQuery=$conexao->Query($nomeServicoString);
list($servicoNome)=$nomeServicoQuery->fetch_row();
echo " <label>Tipos para o serviço: ".$servicoNome."</label><br />";
?>
        <div id="div<?php echo $servico;?>">

        <input type="button" value="Adicionar campos" onclick="addCampos(this.parentNode.id, <?php echo $servico;?>)">
        </div>
        <br><br>

<?php
                  $contador2++;
}
?>
Nesse php ele cria div's pais para que, em cada div pai, possam ser criados, blocos de type='text'.
Essa parte esta Ok.

Porem, estes blocos estão dentro de um form que precisa ser validado antes de ser enviado.

E é ai que mora o problema.

A função gera os campos dinamicamente. Mas o JavScript parece que não enxerga eles.
Para a função de validação, eu passo um array php transformado em string como parâmetro.
Após a função receber essa função, ele re-transforma essa string em array js.
Código (Javascript):
function valida_cad_empresa2(form,string_array)
{
        var servico = new Object();
servico = string_array.split('|');

......
for (var key in servico)
{

if (document.getElementsByTagName('nomeTipo'+[servico[key]]).length==0)
{
addCampos('div'+servico[key], servico[key]);
if(key==servico.length-1)
{
alert("Você deve cadastrar pelo menos 1 tipo para cada serviço selecionado na etapa anterior!");
return (false);
}
}
else
{
                  for (var key2 in servico[servico[key]])
{
if (document.getElementsByTagName('nomeTipo')[servico[servico[key]]][servico[servico[key]][servico[servico[key]][servico[servico[key][key2]]]]] =="")
{
alert("Preencha Nome do Tipo: campo obrigatório!");
document.getElementsByTagName('nomeTipo')[servico[servico[key]]][servico[servico[key]][servico[servico[key]][servico[servico[key][key2]]]]].focus();
return (false);
}
}
  }
}

form.submit();

}
Acontece, que a função valida que o primeiro campo nomeTipo de uma das div's pais não existe e dispara a função de criá-lo mas após criá-lo, ele continuando encontrando ele como não criado.

Porem me ajudar?

Podem visualizar o que estou falando em:

http://www.dinamicaimoveis.com.br/morrodesaopaulo.inf.br/cadastrar.php?acao=form

Podem ficar à vontade para testar e criar empresas fictisseas com qualquer nome

Viewing all articles
Browse latest Browse all 14700