Jump to content
Fórum Script Brasil
  • 0

[resolvido] Funções


Notax
 Share

Question

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 to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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!

Edited by Notax
Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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!

Edited by Notax
Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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!!!

Edited by Gnomo
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.8k
    • Total Posts
      646.6k
×
×
  • Create New...