Ir para conteúdo

POWERED BY:

Arquivado

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

luiscarlos5046

Validar vários Selects

Recommended Posts

Olá Galera!

 

Depois de batalhar em busca de uma solução para validar só esse campo Select da quantidade, não consegui em todas as formas que encontrei.

Seguindo o form como na figura abaixo:

 

Imagem Postada

 

Essa lista de produtos é dinâmica, e pode ter mais ítens.

Os nomes dos checkbox e dos Selects são iguais pra todos...

Os Checkbox eu consegui uma forma pra validar todos independendo da posição que ele se encontra.

 

// valida produto selecionado
    todos=d.id_produto;
    for(x=0;x<todos.length;x++){
    if(todos[x].checked){
    return true;
    }
    }
    alert("Selecione pelo menos 1 produto");
    return false;

Agora, esse Select tá passando batido e não consigo validar de nenhuma forma que encontrei.

Esse campo pode ser um Select ou pode ser campo comum tipo texto pra ser digitado.

Desde que funcione a validação... eu posso mudar ele e colocar pra pessoa digitar.

 

Obrigado!

 

Luis Carlos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este é código html:

 

<!--#include file="abrecon.asp"-->
<!--#include file="abrecon_catalogo.asp"-->
<%
strSql = " SELECT * "
strSql = strSql & " FROM clientes_prod "
strSql = strSql & " WHERE estatus = True "
strSql = strSql & " AND id_cliente = "& cint(Request("id"))
set rsCP = cn2.execute(strSql)

p_id = rsCP("id")
p_id_cliente = rsCP("id_cliente")
p_obs = rsCP("obs")

Session("email_to") = rsCP("email_envio")

strSql = " SELECT * "
strSql = strSql & " FROM produtos "
strSql = strSql & " WHERE id_cliente = "& p_id
set rsP = cn2.execute(strSql)

strSql = " SELECT banner "
strSql = strSql & " FROM clientes "
strSql = strSql & " WHERE id = "& cint(Request("id"))
set rs = cn.execute(strSql)


%>
<script language="JavaScript">
function validaForm(){
    d = document.Form1;
    if (d.nome.value == ""){
        alert("É necessário informar o 'Nome Completo.'");
        d.nome.focus();
        return false;
    }
    if (d.endereco.value == ""){
        alert("É necessário informar o 'Endereço de Entrega'.");
        d.endereco.focus();
        return false;
    }
    if (d.fone.value == ""){
        alert("É necessário informar um 'Telefone' para confirmaçao do pedido.");
        d.fone.focus();
        return false;
    }
    //validar email
    if (d.email.value == ""){
        alert("É necessário informar um 'Email'.");
        d.email.focus();
        return false;
    }
    //validar email(verificao de endereco eletronico)
    parte1 = d.email.value.indexOf("@");
    parte2 = d.email.value.indexOf(".");
    parte3 = d.email.value.length;
    if (!(parte1 >= 3 && parte2 >= 6 && parte3 >= 9)) {
        alert("OBS.: É necessário um e-mail válido.");
        d.email.focus();
        return false;
    }
    // validaçao do Radio
    var objRadio = document.forms["Form1"].elements["pagto"];
    var checado = false;
    var valor;
    for (var i=0; i<objRadio.length; i++) {
            if (objRadio[i].checked == true) {
                    checado = true;
                    valor = objRadio[i].value;
            }
    }
    if (checado == false) {
        alert("Informe a forma de pagamento!");
        return false;
    }
    
    // valida produto selecionado
    todos=d.id_produto;
    for(x=0;x<todos.length;x++){
    if(todos[x].checked){
    return true;
    }
    }
    alert("Selecione pelo menos 1 produto");
    return false;
    
    // valida quantidade do produto
    if(document.getElementById("qtd").value == ""){
        window.alert("É necessário informar a quantidade.");
        document.getElementById("qtd").focus();
        return false;
    }
}
</script>
<link href="styles.css" rel="stylesheet" type="text/css">
<table width="486" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><form id="Form1" name="Form1" method="post" action="catalogo_comprar.asp?id=<% =Request("id") %>" onsubmit="return validaForm()">
        <input type="hidden" name="id_cliente_p" value="<%=p_id%>">
        <table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="51%"><img src="upload/<% =rs("banner") %>" width="238" height="104" alt="Abeledos Pizzaria"></td>
            <td width="49%" align="center" valign="middle" class="cor2"><div class="texto08">Pedido Online</div></td>
          </tr>
        </table>
        <div class="texto03 cor8" style="padding-top:20px; padding-bottom:10px;">
          <% =rsCP("obs") %>
        </div>
        <div class="div_tit_produtos texto07">DADOS PARA ENTREGA</div>
        <table width="100%" border="0" cellpadding="2" cellspacing="4" class="texto04 cor6">
          <tr>
            <td width="26%" align="right">Nome completo:</td>
            <td width="74%"><input name="nome" type="text" id="nome" size="70"></td>
          </tr>
          <tr>
            <td align="right">Endereço:</td>
            <td><input name="endereco" type="text" id="endereco" size="70"></td>
          </tr>
          <tr>
            <td align="right">Telefone:</td>
            <td><input name="fone" type="text" id="fone" size="70"></td>
          </tr>
          <tr>
            <td align="right">Email:</td>
            <td><input name="email" type="text" id="email" size="70"></td>
          </tr>
          <tr>
            <td align="right">Forma de pagto.:</td>
            <td><p>
                <label>
                  <input type="radio" name="pagto" value="deposito" id="pagto">
                  Depósito bancário</label>
                <br>
                <label>
                  <input type="radio" name="pagto" value="entrega" id="pagto">
                  Na entrega</label>
                <br>
              </p></td>
          </tr>
        </table>
        <div class="div_tit_produtos texto07">PRODUTOS</div>
        <div>
          <%
x = 1
do while not rsP.eof
%>
          <table width="100%" border="0" cellspacing="1" cellpadding="1">
            <tr>
              <td width="309" bgcolor="#F4F4F4" class="cor2"><div class="texto03">
                  <% =Replace(rsP("produto"),vbcrlf,"<br>") %>
                </div></td>
              <td width="66" align="center" bgcolor="#F4F4F4"><div class="texto03">
                  <% =FormatNumber(rsP("valor"),2) %>
                </div></td>
              <td width="50" align="center" bgcolor="#F4F4F4"><input name="id_produto" type="checkbox" id="id_produto" value="<% =rsP("id") %>"></td>
              <td width="48" align="center" bgcolor="#F4F4F4"><input name="qtd" type="text" id="qtd" size="3"></td>
            </tr>
          </table>
          <div style="height:6px;"> </div>
          <%
x = x+1
rsP.MoveNext 
Loop
%>
          <input name="button" type="submit" class="texto03-TIT" id="button" value=" Enviar Pedido ">
        </div>
      </form></td>
  </tr>
</table>
<%
rs.close()
set rs = nothing
rsCP.close()
set rsCP = nothing
rsP.close()
set rsP = nothing
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, se eu intendi direito, você disse que pode ser um input texto normal. E colocando ele ficaria bem mais fácil de validar. você validaria normal igual você validou os outros campos. você só verifica se está vazio ( x== "") se é maior que 0 (x>0) e se for um numero. e pra isso te uma função ISNAN (is not a number) ai você utilizaria !ISNAN. e pronto.

espero ter ajudado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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