Ir para conteúdo
Fórum Script Brasil
  • 0

validar campos


ju_rezende

Pergunta

olá pessoal estou com um probleminha, estou tentando validar um form que não está funcionado

tenho um form que puxa informações do banco de dados, são os sabores que o usuário pode ráescolher selecionando através do checkbox, porém para cada checkbox ao lado existe um input text e é ele que precisa ser validade.

se a pessoa selecionar um checkbox (supondo sabor maçã) o input text precisa ser preenchido obrigatoriamente, mas sen não selecionar o checkbox não precisa preencher o input text.

eu tentei fazer isso de várias formas mas não consegui

meu fome tem name cadastro

vou postar este código para você entenderem

<%Do while rs.eof=false %>

<tr>

<td width="161"><input name="sabor<%=contador%>" type="checkbox" value="<%=rs("codigo")%>" id="sabor" /><%=rs("Sabor")%></td>

<td width="240"><input name="estoque<%=contador%>" type="text" size="10" id="estoque" onKeypress="if (event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;" />Estoque

&lt;script language="javascript">

<!--

function validar(form) {

estoque<%=contador%> = document.cadastro.estoque<%=contador%>.value

if(estoque<%=contador%>.value == ""){

alert( "digite o estoque");

return false;

}

}

// -->

</script>

</td>

pessoal se alguém conseguir me ajudar fico muito grata.

Grande abraço a todos

</tr>

<%rs.movenext

contador=contador+1

loop%>

Editado por fercosmig
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Juliana, na verdade eu não entendi onde quer fazer a validação.

Estou em dúvida, se quer fazer a validação no momento em que o usuário clica no checkbox ou se na hora de mandar as informações para o servidor.

Link para o comentário
Compartilhar em outros sites

  • 0

<script language="javascript" type="text/javascript">
<!--
function validacao(){
    campos = document.forms[0];
    for (i=0; i<campos.elements.length; i++){
        campo = campos.elements[i];
        strcampo = campo.name.substring(0,3);
//        alert(campo.name);
        switch (strcampo){
            case 'chk':
                if(campo.checked){
//                    alert(campo.name);
//                    return false;
                    id = campo.name.substring(3,campo.name.length);
                    str = 'txt' + id;
//                    alert(str);
                    if (document.getElementById(str).value == ''){
                        alert("digite o aniversário do usuário selecionado!");
                        document.getElementById(str).style.background='#FFFF66';
                        document.getElementById(str).focus();
                        return false;
                    }
                }
        }
    }
//    return false;
}
-->
</script>
If ((NOT (objRs.BOF)) AND (NOT (objRs.EOF))) Then
    With Response
        .Write("<form name='form1' method='post' action='teste.asp' onsubmit='java script:return validacao();'>")
        .Write("<table>")
    End With    
    objRs.MoveFirst
    Do While (NOT (objRs.EOF))
        With Response
            .Write("<tr>")
            .Write("<td>")
            .Write("<input type='checkbox' name='chk" & objRs("Id") & "'/>")
            .Write(objRs("Id"))
            .Write(" - ")
            .Write(objRs("Nome"))
            .Write("</td>")
            .Write("<td>")
            .Write("Digite a idade: ")
            .Write("<input type='text' name='txt" & objRs("Id") & "' id='txt" & objRs("Id") & "'/>")
            .Write("</td>")
            .Write("</tr>")
        End With
        objRs.MoveNext
    Loop
    With Response
        .Write("</table>")
        .Write("<input type='submit' value='>>'/>")
        .Write("</form>")
    End With    
End If

Link para o comentário
Compartilhar em outros sites

  • 0

olá fercosmig, vou tentar adaptar, eu já tenho um validarfor() acima daquele código que postei, mas o d = document.cadastro; e o seu document.forms[0];, não é o formulario todo que está dentro do loop, e sim só a parte que puxa informação do banco de dados, vou postar o código melhor e comento para você entender

<title>Cadastrar Produto</title>

<script language="JavaScript">

function validaForm(){

//validar nome

d = document.cadastro;

var campo = document.getElementById("categoria");

if (campo.value == ""){

alert("O campo " + campo.name + " do formulario deve ser preenchido!");

campo.focus();

return false;

}

var campo1 = document.getElementById("fornecedor");

if (campo1.value == ""){

alert("O campo " + campo1.name + " do formulario deve ser preenchido!");

campo1.focus();

return false;

}

//validar tipo

if (!d.tipo[0].checked && !d.tipo[1].checked) {

alert("Escolha o um tipo!")

return false;

}

if (!d.sabor[0].checked && !d.sabor[1].checked) {

alert("Escolha pelo menos um sabor!")

return false;

}

return true;

}

// -->

</script>

<body>

conateudo dapágina

<table width="516" border="0" cellspacing="0" cellpadding="0">

<form name="cadastro" action="ConfirmaCadatroProduto.asp" method="post" onSubmit="return validaForm()">

<tr>

<td>&nbsp;Produto</td>

<td colspan="5" align="left"><span class="style4">

<input name="produto" type="text" size="63" />

</span></td>

</tr>

<tr>

<td>&nbsp;Fornecedor</td>

<td colspan="5" align="left">

<select name="fornecedor" style=" width: 403px;">

<option value="">***********************Selecione um fornecedor***********************</option>

<%call AbreConexao()

set rs1 = server.CreateObject ("adodb.recordset")

sql1="select * from fornecedor order by fornecedor"

rs1.open sql1,conn,3,3

rs1.movefirst

Do while rs1.eof=false %>

<option value="<%=rs1("codigo")%>"><%=rs1("fornecedor")%></option>

<%rs1.movenext

loop

set rs1=nothing%>

</select>

</td>

</tr>

<tr><td>

<table width="401" height="16" border="0" cellpadding="0" cellspacing="0">

<%Do while rs.eof=false %>

<tr>

<td width="161"><input name="sabor<%=contador%>" type="checkbox" value="<%=rs("codigo")%>" id="sabor" /><%=rs("Sabor")%></td>

<td width="240"><input name="estoque<%=contador%>" type="text" size="10" id="estoque" onKeypress="if (event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;" />Estoque

<%'inserir aqui a verificação de java script %>

</td>

</tr>

<%rs.movenext

contador=contador+1

loop%> </table>

</td>

</form>

</table>

</body>

existe um laço apenas para o input sabor, que é o campo chekbox, para cada check box selecionado deverá ser preenchiodo o valor do inpu estoque

porém antes deste loop já existem outros campo que não coloquei todos, mas é só para você entender, e já existe a validação deles, as únicas validações que não funciona é a do checkbox sabor, que precisa 1º se não selecionar nenhum dar mensagem nenhum sabor foi selecionado, 2º e para cada check selecionado precisa preencher o campo estoque , caso ela selecione 3 então será necessário digitar o estoque dos 3 sabores selecionado.

Não sei se consegui explicar direito, se não entender posta pra mim que tento melhorar .

Abraço

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...