Ir para conteúdo
rcamu

Ajuda com validações de campos.

Recommended Posts

Tenho uma tela para conferencia de separação de pedidos e coloque uma validação dos campos de quantidade e ean onde se o informado for diferente do que consta no pedido ele não deixa prosseguir.

como o pedido ele pode possuir varias linhas eu utilizo foreach e javascript para montar na tela.

o meu problema é que a validação dos campos só considera o valor da 1º linha a partir da segunda linha ele da que os dados não confere e se eu colocar os dados da 1º linha mesmo sendo diferente dos dados do pedido ele deixa passar.

o meu javascript está assim:

<script>
function validaEAN (input){ 
	if (input.value != document.getElementById('ean2').value) {
    input.setCustomValidity('EAN Não Confere');
  } else {
    input.setCustomValidity('');
  }
} 

function validaqtd (input){ 
	if (input.value != document.getElementById('qtd').value) {
    input.setCustomValidity('QUANTIDADE Não Confere');
  } else {
    input.setCustomValidity('');
  }
} 
</script>

e o minha tela é montada assim:

<form form id="cad" name="cad" method="post"  $id = $_GET['id'];>
<input type="hidden" name="acao" value="1" />

<strong><b><font size="3"> <font color="#000000">Data :</font></strong>
<input type="text" name="data" name="dtConcat2" size="11" maxlength="10" value="<?php echo $detalhe['dtConcat2']?>" readonly /> <br><br>
<strong><b><font size="3" > <font color="#000000">Cliente :</strong>
<input type="text" size="80" name="clienteAt" size="11" maxlength="10" value="<?php echo $detalhe['nome']?>" readonly />
<br><br>
<strong><b><font size="3"> <font color="#000000">Observação :  <br>
<input type="text" name="descricao" size="90" maxlength="90" value="<?php echo $detalhe['descricao']?>" />
<br><br>
<table border="0" cellpadding="2" cellspacing="4" class="tblDet">
    <tr>
      <td class="bd_titulo">Produto</td>
      <td class="bd_titulo">Quantidade</td>
      <td class="bd_titulo">Quantidade Conferida</td>
      <td class="bd_titulo">EAN</td>
      <td class="bd_titulo">EAN Conferido</td>
            
  </tr>
  <tr class="linhas">
    <td><select name="cat_id[]" onchange="setProdLinha(this)" class="cat_id" disabled="disabled">
      <option value="">Selecione</option>
    <td>
      <input id="qtd" type="text" name="qtd[]" class="qtd"
      required name="qtd" size="11" disabled="disabled"
      style="text-align:center" />
    </td>
	<td>
      <input  type="text" name="qtd_conf[]" class="qtd_conf"
      oninput="validaqtd(this)"required name="qtd_conf" size="11"
      style="text-align:center" />
    </td>
    <td>
      <input id="ean2" name="ean2[]" type="text" required name="ean2"
      maxlength="30" size="21" 
       style="text-align:center"
      class="ean2" />
    </td>
   <td>
      <input  type="text" name="ean[]" class="ean"
      oninput="validaEAN(this)"required name="ean" size="21"
      style="text-align:center" />
    </td>
  </tr>
  <tr>
    <td colspan="4">
         
          <p><input type="submit" value="Alterar" /></p>
          <p><a href="consulta_conferencia.php">Cancelar/Voltar</a></p>

 

Onde estou errando?  

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá rcamu, tudo bem? Espero que sim!

 

Desde já, deixo informado que o tópico está no local incorreto, esta área é destinada a PHP, não JavaScript.

 

Vamos ao assunto principal:

Se os dados vem em um array, ou seja, existe mais de um input com um determinado nome (name="qdt[]"), você deve chamar todos, a sua função está chamando apenas o primeiro valor mesmo.

Para que a sua função puxe todos os valores utilize a função .each() do jQuery.

Documentação do .each(): https://api.jquery.com/each/ e http://api.jquery.com/jquery.each/

 

Caso queira utilizar javascript puro, será necessário colocar um for dentro da sua função contando o número de linhas que existe.

 

Abraços, Wictor Pamplona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

WictorP, blz e você? obrigado por perguntar.

 

Passei o fds lendo sobre a função .each() e não consegui colocar no meu cód. (sou bem iniciante)

 

Você teria algum exemplo que eu poderia utilizar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou bem rcamu. Obrigado!

 


// Criar o array

var qtd = new Array();

$("input[name='qtd']").each(function() {

 var valor = $(this).val();

 qtd.push(valor);

});

 

// Desfazer array

$.each(qtd, function(key, value) {

 alert(key);

 //alert(value)

}

 

Também pode usar for para desfazer o array.

Eu usei jQuery porque tenho mais afinidade, mas o código funciona com javascript puro também, basta adaptar.

 

Abraços, Wictor Pamplona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por tiagocaus
      Ao desmarcar um checkbox o calculo não está sendo feito da forma correta.

      Não consegui identificar o problema, poderia ajudar?


      Link do código:https://jsfiddle.net/cwsmo4et/


      Obrigado.
    • Por Bruno123
      Olá, estou com uma dúvida na hora  de retornar se o número é primo ou não, poderiam me ajudar por gentileza ? Obrigado !
      <!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title></title> </head> <body> <script src="javascript.js"></script> </body> </html> 'use strict' let num = prompt("Insira um número:"); let c = 0; for (i = 1; i <= num; i++) { if (num % i == 0) { c++; } } if (c == 2) { alert ("É PRIMO") } else { alert("NÃO É PRIMO") }  
    • Por BTK
      Boa noite, estou tentando criar um curl que faz cadastro no site(o proprietário está ciente disso) porem ele está me retornando (HTTP/1.1 100 Continue HTTP/1.1 302 Moved Temporarily)

       $ch = curl_init();   
          
                                                                                                                     
          curl_setopt($ch, CURLOPT_URL, "https://www.cafefacil.com.br/customer/account/create/");                                     
          curl_setopt($ch, CURLOPT_HEADER, true);                                                                                                   
          curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36');                                                                                                                                               
          curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);                                                                                         
          curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);                                                                                       
          curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);                                                                                       
          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
          curl_setopt($ch, CURLOPT_COOKIESESSION, true);                                                                             
          curl_setopt($ch, CURLOPT_COOKIEJAR, getcwd().'/cafefacil.txt');
          curl_setopt($ch, CURLOPT_COOKIEFILE, getcwd().'/cafefacil.txt'); 
          
          
          
          
          $b1 = curl_exec($ch);
          
          $form_key = value($b1, 'type="hidden" name="form_key" value="', '"');
          
          curl_setopt($ch, CURLOPT_URL, 'https://www.cafefacil.com.br/customer/account/createpost/');                                     
          curl_setopt($ch, CURLOPT_HEADER, true);                                                                                                   
          curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36');                                                                                                                                                  
          curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);                                                                                         
          curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);                                                                                    
          curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);                                                                                       
          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
          curl_setopt($ch, CURLOPT_COOKIESESSION, true);   
          curl_setopt($ch, CURLOPT_REFERER, 'https://www.cafefacil.com.br/customer/account/create/');                                                                           
          curl_setopt($ch, CURLOPT_COOKIEJAR, getcwd().'/cafefacil.txt');
          curl_setopt($ch, CURLOPT_COOKIEFILE, getcwd().'/cafefacil.txt'); 
          curl_setopt($ch, CURLOPT_POST, 1);                                                                                                    
          $boundary = '---------------------------WebKitFormBoundaryRQ3KHJbpfmPf11v6';
          
          $data = '-----------------------------'.$boundary.'
          Content-Disposition: form-data; name="success_url"
          
          
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="error_url"
          
          
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="form_key"
          
          '.$form_key.'
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="tipopessoa"
          
          15
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="firstname"
          
          NomeTest SobreNomeTest
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="nomefantasia"
          
          
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="inscricaoestadual"
          
          
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="email"
          
          nometestsobrenometest@gmail.com
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="day"
          
          01
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="month"
          
          01
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="year"
          
          1990
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="dob"
          
          01/01/1990
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="taxvat"
          
          199.758.750-50
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="celular"
          
          (11)4712-8491
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="password"
          
          senhatest
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="confirmation"
          
          senhatest
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="persistent_remember_me"
          
          on
          -----------------------------'.$boundary.'--';
          
          $header[] = "Content-Type: multipart/form-data; boundary=".$boundary;
          curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
          curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
          
            
          echo $exec = curl_exec($ch);
          curl_close($ch);
    • Por user32
      Olá pessoal,
      sempre fui um curioso na programação e agora estou começando entender o javascript.
       
      edit:
      como eu consiguiria fazer a variavel buscar alem de 9... como numeros como 10-20, 20-30 ?
      toda ajuda é bem vinda, desde já agradeço
       
       
      <script type="text/javascript"> function funcao1() { var num1 = Number(document.getElementById("num1").value); var elemResult = document.getElementById("total"); var d90 = /[0-3]/; var d80 = /[4-5]/; var d70 = /[6-9]/; if (d90.test(num1)) { elemResult.innerText = String(num1 * "1") + "."; } else if (d80.test(num1)) { elemResult.innerText = String(num1 * "2") + "."; } else if (d70.test(num1)) { elemResult.innerText = String(num1 * "3") + "."; } else { // IE elemResult.innerText = String(num1 * "5") + "."; } } </script>  
    • Por allencar.limma
      Tento incluir as informações de um formulário no banco de dados e não consigo. conforme código abaixo.
      <? /*Incluir as informações no formulario */ include "config.php"; $nome = trim($_POST['nome']); $masp = trim($_POST['masp']); $cpf = trim($_POST['cpf']); $telefone = trim($_POST['telefone']); $email = trim($_POST['email']); $endereco = trim($_POST['endereco']); $data_nascimento = trim($_POST['data_nascimento']); $unidade_lotacao = trim($_POST['unidade_lotacao']); /* Vamos checar algum erro nos campos */ if ((!$nome) || (!$masp) || (!$cpf) || (!$telefone) || (!$email) || (!$endereco) || (!$data_nascimento) || (!$unidade_lotacao)){ echo "ERRO: <br /><br />"; if (!$nome){ echo "Nome Completo é requerido.<br />"; } if (!$masp){ echo "Masp é requerido.<br />"; } if (!$cpf){ echo "CPF é requerido.<br /)>"; } if (!$telefone){ echo "Telefone é requerido.<br />"; } if (!$email){ echo "Email é requerido.<br />"; } if (!$endereco){ echo "Endereço é requerido.<br />"; } if (!$data_nascimento){ echo "Data de Nascimento é requerido.<br />"; } if (!$unidade_lotacao){ echo "Unidade de Lotação é requerido.<br>"; } echo "Preencha os campos abaixo: <br />"; include "formulario_cadastro.php"; }else { /* Vamos checar se o nome de Usuário escolhido e/ou Email já existem no banco de dados */ $sql_email_check = mysql_query( "SELECT COUNT(usuario_id) FROM usuarios WHERE email='{$email}'" ); $sql_masp_check = mysql_query( "SELECT COUNT(usuario_id) FROM usuarios WHERE masp='{$masp}'" ); $sql_cpf_check = mysql_query( "SELECT COUNT(usuario_id) FROM usuarios WHERE cpf='{$cpf}'" ); $eReg = mysql_fetch_array($sql_email_check); $uReg = mysql_fetch_array($sql_masp_check); $uReg = mysql_fetch_array($sql_cpf_check); $email_check = $eReg[0]; $masp_check = $uReg[0]; $cpf_check = $uReg[0]; if (($email_check > 0) || ($masp_check > 0) || ($cpf_check > 0)){ echo "<strong>ERRO</strong>: <br /><br />"; if ($email_check > 0){ echo "Este email já está sendo utilizado.<br /><br />"; unset($email); } if ($masp_check > 0){ echo "Este Masp já está sendo utilizado.<br /><br />"; unset($masp); } if ($cpf_check > 0){ echo "Este CPF já está sendo utilizado.<br /><br />"; unset($cpf); } include "formulario_cadastro.php"; }else{ /* Se passarmos por esta verificação ilesos é hora de finalmente cadastrar os dados. Vamos utilizar uma função para gerar a senha de forma randômica*/ function makeRandomPassword(){ $salt = "abchefghjkmnpqrstuvwxyz0123456789"; srand((double)microtime()*1000000); $i = 0; while ($i <= 7){ $num = rand() % 33; $tmp = substr($salt, $num, 1); $pass = $pass . $tmp; $i++; } return $pass; } $senha_randomica = makeRandomPassword(); $senha = md5($senha_randomica); // Inserindo os dados no banco de dados //$cpf = htmlspecialchars($cpf); ***RETIRADO PELO FATO DE NÃO ESTA SENDO USADO $sql = mysql_query( "INSERT INTO usuarios (none, masp, cpf, telefone, email, endereco, data_nascimento, unidade_lotacao) VALUES ('$nome', '$masp', '$cpf', '$telefone', '$email', '$endereco', '$data_nascimento', '$unidade_lotacao', now())") or die( mysql_error() ); if (!$sql){ echo "Ocorreu um erro ao criar sua conta, entre em contato."; }else{ $usuario_id = mysql_insert_id(); // Enviar um email ao usuário para confirmação e ativar o cadastro! $headers = "MIME-Version: 1.0\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\n"; $headers .= "From: RCI - <rci@rcionline.com.br>"; $subject = "Confirmação de cadastro - www.rcionline.com.br"; $mensagem = "Prezado {$nome} {$masp},<br /> Obrigado pelo seu cadastro em nosso site, <a href='http://www.rcionline.com.br'> http://www.rcionline.com.br</a>!<br /> <br /> Para confirmar seu cadastro e ativar sua conta em nosso site, podendo acessar à áreas exclusivas, por favor clique no link abaixo ou copie e cole na barra de endereço do seu navegador.<br /> <br /> <a href='http://www.rcionline.com.br/ativar.php?id={$usuario_id}&code={$senha}'> http://www.rcionline.com.br/ativar.php?id={$usuario_id}&code={$senha} </a> <br /> <br /> Após a ativação de sua conta, você poderá ter acesso ao conteúdo exclusivo efetuado o login com os seguintes dados abaixo:<br > <br /> <strong>Usuario</strong>: {$usuario_id}<br /> <strong>Senha</strong>: {$senha_randomica}<br /> <br /> Obrigado!<br /> <br /> Webmaster<br /> <br /> <br /> Esta é uma mensagem automática, por favor não responda!"; mail($email, $subject, $mensagem, $headers); echo "Foi enviado para seu email - ( ".$email." ) um pedido de confirmação de cadastro, por favor verifique e sigas as instruções!"; } } } ?>  
×

Informação importante

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