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

[resolvido] Funções


Notax

Pergunta

pessoal... estou aqui denovo... com mais uma dúvida!

olha só... tenho estas duas funções abaixo no mesmo script... a primeira é a função ExibeCampo e a segunda é a Função valida_campo...

a primeira... faz com que alguns campos fiquem escondidos enquanto o checkbox "chcBoleto" não estiver marcado... e a segunda é tipo um tratamento para erros!

só que quando eu coloquei a segunda função a primeira parou de funcionar... denovo... ou seja, quando clica em chcBoleto ele não mostra os campos ocultos... sendo que sem a segunda função funciona legal!

alguém sabe onde eu errei?

<script language="javascript">
function ExibeCampo(status)
{
if (status)
    document.getElementById("div").style.display = 'block';
else
    document.getElementById("div").style.display = 'none';
}

function valida_campo()
{
chcBoleto = false;
if (!chcBoleto)
}
{
var txtdd = document.form.txtdd.value
if (txtdd==""){
    alert("Digite o dia!");
    document.form.txtdd.focus()
    return false
    }
var txtmm = document.form.txtmm.value
if (txtmm==""){
    alert("Digite o mês!");
    document.form.txtmm.focus()
    return false
    }
var txtaa = document.form.txtaa.value
if (txtmm==""){
    alert("Digite o ano!");
    document.form.txtaa.focus()
    return false
    }
var cmbTipo=document.form.cmbTipo.value;
if (cmbTipo=="SELECIONE"){
    alert("Selecione o Tipo!")
    document.form.cmbTipo.focus()
return false
    }
    var txtDescricao=document.form.txtDescricao.value;
if (txtDescricao==""){
    alert("Digite o Histórico de seu lançamento!")
    document.form.txtHistorico.focus()
return false
    }
    var txtValor=document.form.txtValor.value;
if (txtValor==""){
    alert("Digite o valor!")
    document.form.txtValor.focus()
return false
    }
</script>

</head>
<body>
<form method="post" action="insert_into_a_pagar_mensal.asp" name="form" onsubmit="return valida_campo()">

valeu pela atenção.

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Posta o restante do codigo, onde você chama a funcao ExibeCampo.

Eu não entendi porque você está setando chcBoleto como false, eu coloquei isso pra exemplo... da onde vem essa variavel?

porque voce simplesmente seta ela do nada e embaixo usa uma condicao que sempre ela sera verdadeira, logo, não é preciso usar

Link para o comentário
Compartilhar em outros sites

  • 0

Pois eu entendi o que tu quiseste me dizer... mas não to coneseguindo fazer uma diferenciação na prática... por que essa função de tratamento de erros (valida_campo) acima é só pra quando o chcboleto tiver desmarcado... quando e se ele tiver marcado preciso complementar com alertas obrigando o preenchimento do campo txtQuantidade e da seleção de uma das opções do grupo qdrRepercussao... que nem fiz ainda porque a primeira parte eu já cometi algum erro!

pra ilustrar... se fosse no vbscript colocaria assim:

sub marcado()

if... 'tratamento de erros

end if

end sub

sub desmarcado ()

if... 'tratamento de erros

end if

end sub

if chcBoleto = false then

call desmarcado

end if

if chcBoleto = true then

call marcado

end if

a parte do código onde chama a Exibe_Campo é esta:

<p align="left"><font face="Abadi muito Condensed Light"><input name="chcBoleto" type="checkbox" id="chcBoleto" value="ON" onclick="ExibeCampo(this.checked)"><i>Clique
  para ativar repetições (lançamentos de contas tipo carnês ou
  parcelamentos)</i></font>
  <div id="div" style="display:'none'";><p align="left">Nº de Parcelas <input name="txtQuantidade" type="text" id="txtQuantidade" size="5"></font>
  <p align="left"><font face="Abadi muito Condensed Light"><i>Repercussão:</i></font></p>
  <font face="Abadi muito Condensed Light"><i>semanal<input type="radio" value="1" name="qdrRepercussao">&nbsp; mensal<input type="radio" name="qdrRepercussao" value="2">
    <p>semestral <input type="radio" name="qdrRepercussao" value="3"> anual <input type="radio" name="qdrRepercussao" value="4"></div>

valeu pela atenção e por toda paciência que tu tens... desculpe pelo incomodo!

Editado por Notax
Link para o comentário
Compartilhar em outros sites

  • 0

Veja se é isto: (apenas a funcao de valida que modificou-se)

function valida_campo()
{
var txtdd = document.form.txtdd;
var txtmm = document.form.txtmm;
var txtaa = document.form.txtaa;
var cmbTipo=document.form.cmbTipo;
var txtDescricao=document.form.txtDescricao;
var txtValor=document.form.txtValor;
var chcBoleto=document.form.chcBoleto.checked;

    if (txtdd.value==""){
        alert("Digite o dia!");
        txtdd.focus()
        return false
        }
    if (txtmm.value==""){
        alert("Digite o mês!");
        txtmm.focus()
        return false
        }
    if (txtmm.value==""){
        alert("Digite o ano!");
        txtaa.focus()
        return false
        }
    if (cmbTipo.value=="SELECIONE"){
        alert("Selecione o Tipo!")
        cmbTipo.focus()
            return false
        }
    if (txtDescricao.value==""){
        alert("Digite o Histórico de seu lançamento!")
        txtDescricao.focus()
            return false
        }
    if (txtValor.value==""){
        alert("Digite o valor!")
        txtValor.focus()
            return false
        }

     if(chcBoleto)
     {
     var txtQuantidade=document.form.txtQuantidade;
     var qdrRepercussao=document.form.qdrRepercussao;
     var tamanho = qdrRepercussao.length;
     
     if (txtQuantidade.value==""){
        alert("Digite a quantidade de parcelas!");
        txtQuantidade.focus()
        return false
        }

        for (i=0;i<tamanho;i++) {
            if (qdrRepercussao[i].checked) {
                var marcado = true;
                break;
            }
        }

        if (!marcado)
        {
            alert("Selecione uma Repercussão!")
            return false;
        }
     }
}

Link para o comentário
Compartilhar em outros sites

  • 0

Mais bah! funcionou sim!

Andreia... muito obrigado!

o único que não funcionou foi esse aqui:

if (cmbTipo.value=="SELECIONE"){
        alert("Selecione o Tipo!")
        cmbTipo.focus()
            return false
        }
que se refere a este campo aqui:
<select name="cmbTipo" size="1" id="cmbTipo">
      <option>SELECIONE</option>
      <option>HONORÁRIOS</option>
      <option>ALUGUEL</option>
      <option>CLIENTES</option>
      <option>FORNECEDORES</option>
      <option>CONDOMINIO</option>
      <option>LUZ</option>
      <option>AGUA</option>
      <option>TELEFONE</option>
      <option>GAS</option>
      <option>ESCOLAS</option>
      <option>CHEQUES</option>
      <option>SEGURO</option>
      <option>SAUDE</option>
      <option>OUTROS</option>
      <option>PRÓ-LABORE</option>
    </select>

a minha ideia era caso estivesse aparecendo a palavra SELECIONE... a primeira da lista... é sinal de que o usuário não selecionou nada! daí o alerta... isso é possivel ou devo mudar a estratégia?

valeu mais uma vez... como sempre tu fostes exata...

forte abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Você tem q setar um valor pra option selecione tenta assim:

if (cmbTipo.value==""){
        alert("Selecione o Tipo!")
        cmbTipo.focus()
            return false
        }
<select name="cmbTipo" size="1" id="cmbTipo">
      <option value="">SELECIONE</option>
      <option value="01">HONORÁRIOS</option>
      <option value="02">ALUGUEL</option>
      <option value="03">CLIENTES</option>
      <option value="04">FORNECEDORES</option>
      <option value="05">CONDOMINIO</option>
      <option value="06">LUZ</option>
      <option value="07">AGUA</option>
      <option value="08">TELEFONE</option>
      <option value="09">GAS</option>
      <option value="10">ESCOLAS</option>
      <option value="11">CHEQUES</option>
      <option value="12">SEGURO</option>
      <option value="13">SAUDE</option>
      <option value="14">OUTROS</option>
      <option value="15">PRÓ-LABORE</option>
    </select>

valeu!!!

Link para o comentário
Compartilhar em outros sites

  • 0

AHÃ... agora funcionou...

só inverti um pouquinho a lógica pra ficar aparecendo os nomes no banco... e não os numeros...

ficou assim:

}
        
if (cmbTipo.value=="01"){
        alert("Selecione o Tipo!")
        cmbTipo.focus()
            return false
        }


 <select name="cmbTipo" size="1" id="cmbTipo">
      <option value="01">SELECIONE</option>
      <option>HONORÁRIOS</option>
      <option>ALUGUEL</option>
      <option>CLIENTES</option>
      <option>FORNECEDORES</option>
      <option>CONDOMINIO</option>
      <option>LUZ</option>
      <option>AGUA</option>
      <option>TELEFONE</option>
      <option>GAS</option>
      <option>ESCOLAS</option>
      <option>CHEQUES</option>
      <option>SEGURO</option>
      <option>SAUDE</option>
      <option>OUTROS</option>
      <option>PRÓ-LABORE</option>
    </select>

daí deu bem certinho!

valeu gnomo...

brigadão pela força!

Andreia... muito obrigado mesmo, de coração viu?

forte abraço a todos!

Editado por Notax
Link para o comentário
Compartilhar em outros sites

  • 0

Geralmente usa-se value vazio para as opcoes que não são importantes:

if (cmbTipo.value==""){
        alert("Selecione o Tipo!")
        cmbTipo.focus()
            return false
        }

...

<option value="">Selecione</option>

mas o resultado sera o mesmo ;)

at+

Link para o comentário
Compartilhar em outros sites

  • 0

entendi... mas minha amiga... agora aconteceu um troço que deu um nó na minha cabeça...

fui tentar fazer este tratamento de erros em outro script que tenho da mesma aplicação... é basicamente a mesma coisa... mas nesse novo script não funcionou... os alertas não funcionam... achei que eu tivesse fazendo algo errado... então copiei e colei, alterando somente as variaveis... e mesmo assim continuou não funcionando... por que sera? onde será que estou errando agora?

o script novo é esse abaixo:

<html>
<head>
<title>SJ FINANCE</title>
<script language="javascript">
function valida_campo()
{
var txtData = document.form.txtData;
var txtHora = document.form.txtHora;
var txtCompromisso = document.form.txtCompromisso;

    if (txtData.value==""){
        alert("Digite a Data!");
        txtData.focus()
        return false
        }
    if (txtHora.value==""){
        alert("Digite o horário do compromisso!");
        txtHora.focus()
        return false
        }
    if (txtCompromisso.value==""){
        alert("Digite o compromisso!");
        txtCompromisso.focus()
        return false
        }
    }
}
</script>
</head>
<body>

<form method="post" action="insert_into_agenda.asp" name="form" onsubmit="return valida_campo()">


  <p align="left"><font face="Abadi muito Condensed Light"><b><i><u>Incluir Compromisso 
    na Agenda</u></i></b></font></p>
  <p align="left"><font face="Abadi muito Condensed Light"><i>Data</i>
    <input name="txtData" type="text" id="txtData" size="16">
    <i>ex.: dd/mm/yy</i></font></p>
  <p align="left"><font face="Abadi muito Condensed Light"><i>Hora</i> <input name="txtHora" type="text" id="txtHora" size="20">
  <i>ex.: hh:mm</i></font></p>
  <p align="left"><font face="Abadi muito Condensed Light"><i>Compromisso</i> <input name="txtCompromisso" type="text" id="txtCompromisso" size="100"></font></p>
  <p align="left"><font face="Abadi muito Condensed Light"><i><input type="submit" value="Submeter" name="B1"><input type="reset" value="Redefinir" name="B2"></p>
</form>
</body>
</html>

Link para o comentário
Compartilhar em outros sites

  • 0

falae!

tem uma chave sobrando ae.. é so tirar ela..

<script language="javascript">

function valida_campo()

{

var txtData = document.form.txtData;

var txtHora = document.form.txtHora;

var txtCompromisso = document.form.txtCompromisso;

if (txtData.value==""){

alert("Digite a Data!");

txtData.focus()

return false

}

if (txtHora.value==""){

alert("Digite o horário do compromisso!");

txtHora.focus()

return false

}

if (txtCompromisso.value==""){

alert("Digite o compromisso!");

txtCompromisso.focus()

return false

}

}

}

</script>

valeu!!!

Editado por Gnomo
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
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...