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

(Resolvido) Gerar uma alerta se o campo estiver vazio


marvi

Pergunta

Pessoal, estou tentando fazer algo, mas não estou conseguindo para um formulário clínco:

Quero uma opção do cliente informar o uso de alguma medicação. Da seguinte forma:

Está usando algum medicamento?

( ) SIM ( ) Não - QUAL?

Caso responda que sim será necessário que informe o nome da medicação. O sistema deverá impedir o prosseguimento do cadastro caso não informe a medicação. Deve exibir uma alerta se o campo QUAL estiver vazio.

Aí fiz o seguinte, mas não deu certo... está praticamente pronto, só não sei como interagir isso, veja;

<script> 


function ValidaFormulario () {

if (document.form.nome.value==""){ 
alert("Informe a medicação"); 
document.form.nome.focus(); 

return false;
}

return true;
}
// -->

</script>


<script type="text/javascript">

function medico(Medicamento) {
if(Medicamento=="Sim") { 

document.write("<form method='POST' action='--WEBBOT-SELF--' name='form' onSubmit='return ValidaFormulario();'>")

}
if(Medicamento=="Não") {

}
}
</script>


<input type="radio" value="Sim" name="Medicamento" onclick="medico('Sim')">
</font><input type="radio" value="Não" name="Medicamento" onclick="medico('Não')">
<font face="Arial Narrow" size="2" color="#696969">Qual? </font><font face="verdana" color="#422a09" size="-2">
<input class="formcolor" style="BORDER-RIGHT: #7b7a64 1px solid; BORDER-TOP: #7b7a64 1px solid; FONT-SIZE: 10px; BORDER-LEFT: #7b7a64 1px solid; BORDER-BOTTOM: #7b7a64 1px solid; FONT-FAMILY: Verdana" maxLength="100" size="33" name="nome">



<font color="#7b7a64" size="1" face="Arial Narrow">
<input class="form" style="border:1px solid #FFFFFF; FONT-SIZE: 10px; COLOR: #FFFFFF; FONT-FAMILY: Verdana; BACKGROUND-COLOR: #1B57A0" type="submit" value="Cadastrar Agendamento" border="0" name="B1" height="19" width="59">
<input class="form" style="border:1px solid #FFFFFF; FONT-SIZE: 10px; COLOR: #FFFFFF; FONT-FAMILY: Verdana; BACKGROUND-COLOR: #1B57A0" type="reset" value="Limpar" border="0" name="B2" height="19" width="59"></font></form>

Alguém sabe como fazer isso?

Obrigado!

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

olá marvi, não sei se entende direito, mas tenta isso aqui:

<script type="text/javascript">

function ValidaFormulario()
{
    //adicione na sua função essa condição para saber se está  marcada ou não ai você escolhe de que maneira que desejar seu formulário
    ( document.form.Medicamento[0].checked ) ? alert(1) : alert(2);
}

function medico(Medicamento) 
{
    var div = document.getElementById( 'resposta' );
    if ( Medicamento == "Sim" )
    {    
        var texto = document.createTextNode( 'Medicamento: ' );
            div.appendChild( texto );
        var inp   = document.createElement( 'input' );
            inp.setAttribute( 'id'   , 'medicament' );
            inp.setAttribute( 'name' , 'medicament' );
            div.appendChild( inp );
    }
    else
    {
        var Remove = document.getElementById( 'medicament' );
        while ( div.firstChild ) 
        {
            div.removeChild( div.firstChild );
        }

    }
}
</script>
depois dessa linha:
</font><input type="radio" value="Não" name="Medicamento" onclick="medico('Não')">
insira:
<div id='resposta'></div>

abraço!

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

  • 0

Eu não quero só verificar se o botão foi clicado não...

Quero que se a pessoa clicar no botão Sim o campo que tem lá se torne obrigatório ser preenchido, senão, se clicar no botão Não o campo que tem lá não é obrigado ser preenchido e envia o formulário, entendeu?

Estou usando type="radio"

Tem o seguinte no formulário:

Usa remédio?:

( ) Não ( ) Sim QUAL? [ digita o nome do remedio ]

E envia o formulário.

Se a pessoa fez isso:

Usa remédio?

( ) Não (x) Sim QUAL? [ ]

Veja que ela marcou sim e não preencheu o campo QUAL. Deixou o campo "QUAL" para digita o nome do remedio vazio

Sendo assim, o botão enviar do formumlário não deixa enviar o formulário, dando um alerta para preencher o campo "QUAL".

Mas, se a pessoa fez isso:

Usa remédio?

(x ) Não ( ) Sim QUAL? [ ]

O botão do formulário pode deixar enviar o formulário mesmo com o campo onde digita o nome do remedio vazio, pois ele marcou Não.

Entedeu?

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

  • 0

então é isso mesmo basta você tratar a validação:

function ValidaFormulario()
{
    if ( document.form.Medicamento[0].checked )
    {
        //Aqui você trata do jeito que deseja, Exemplo:
        var ValorDoInput = document.getElementById( 'ID_DO_INPUT' );
        if ( ValorDoInput.length > 5 )
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}

Link para o comentário
Compartilhar em outros sites

  • 0

Fiz assim... Mas o que acontece é que o alerta vem antes de enviar o formulário... só pode dar alerta se enviar, da submit... e se caso o botão radio seja sim.

<script>
function ValidaFormulario(Medicamento)
{
     if(Medicamento=="Sim")
    {
    
     if (document.form.nome.value==""){ 
        alert("Digite o seu Nome");  
        document.form.nome.focus(); 
    return false;
    }
  
        else
        {
            return false;
        }
    }
}
</script>
<form method="POST" action="--WEBBOT-SELF--" name="form"  onSubmit="return ValidaFormulario();" >
<input type="radio" value="Sim" name="Medicamento" onclick="ValidaFormulario('Sim')">
</font><input type="radio" value="Não" name="Medicamento" onclick="ValidaFormulario('Não')">
<font face="Arial Narrow" size="2" color="#696969">Qual? </font><font face="verdana" color="#422a09" size="-2">
<input class="formcolor" style="BORDER-RIGHT: #7b7a64 1px solid; BORDER-TOP: #7b7a64 1px solid; FONT-SIZE: 10px; BORDER-LEFT: #7b7a64 1px solid; BORDER-BOTTOM: #7b7a64 1px solid; FONT-FAMILY: Verdana" maxLength="100" size="33" name="nome">



<font color="#7b7a64" size="1" face="Arial Narrow">
<input class="form" style="border:1px solid #FFFFFF; FONT-SIZE: 10px; COLOR: #FFFFFF; FONT-FAMILY: Verdana; BACKGROUND-COLOR: #1B57A0" type="submit" value="Cadastrar Agendamento" border="0" name="B1" height="19" width="59">
<input class="form" style="border:1px solid #FFFFFF; FONT-SIZE: 10px; COLOR: #FFFFFF; FONT-FAMILY: Verdana; BACKGROUND-COLOR: #1B57A0" type="reset" value="Limpar" border="0" name="B2" height="19" width="59"></font></form>

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

  • 0

Mantive tudo e fiz o script como Romerito me falou:

<script>
function ValidaFormulario()
{
     if(document.form.Medicamento[0].checked)
    {
    
     if (document.form.medicamentos.value==""){ 
        alert("Informe o medicamento");  
        document.form.medicamentos.focus(); 
    return false;
    }
  
       
    }
}
        </script>

Mas como é botão radio o botão com valor sim tem que ficar na frente do não... senão, ele vai considerar o primeiro botão, independente de ser não ou sim... já que ele não leva o valor e sim que só checa se foi marcado...

Se tiverem uma solução melhor fico grato, no mais esse está rodando...

Obrigado!

Link para o comentário
Compartilhar em outros sites

  • 0

saca só na sua função coloca isso:

function ValidaFormulario()
{    
    if ( document.form.Medicamento[0].checked )
    {
        alert("Digite o seu Nome" );  
        document.form.nome.focus();
        return false;
    }
    return true;
}
no sua tag form coloca isso:
onsubmit="return ValidaFormulario();"

espero que agora consiga. :D 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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...