Tenho uma função que cria ( e cria mesmo) um bloco de campos.
Antes disso, para cada bloco, eu crio com php blocos.
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 morro 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.
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.
Pergunta
Carlos Rocha
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.