Ir para conteúdo

POWERED BY:

Arquivado

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

TeixeiraRamos

[Resolvido] Não funciona o meu script

Recommended Posts

Desculpe mas ficou muito grande a minha postagem anterior e pode está prejudicando a compreensão.

O meu script deveria criticar quatro campos. Ocorre que o campo 'Assunto'não está sendo criticado. Ele não pode gerar a mensagem se tiver com a opção "Escolha uma opção/Assunto". O que devo fazer para só sair a mensagem se constar uma opção diferente de "Escolha uma opção/Assunto"?

<script type="text/javascript">
//<![CDATA[
window.onload = function(){
        id('form1').onsubmit = function(){
                var erro = 0;
                erro = !obr( 'Nome' ) ? erro+1 : erro;
                erro = !obr( 'Email' ) ? erro+1 : erro;
                erro = !obr( 'Assunto' ) ? erro+1 : erro;
                erro = !obr( 'Mensagem' ) ? erro+1 : erro;
         
	            if( !checkMail( id('Email') ) )

                {

                   alert( 'Digite um email válido!' );

                       return false;
                }

                if( erro>0 )
                        return false;
        };
};
function obr( campo ){
        if( id(campo).value=='' || id(campo).value==0 ){
                alert( 'O campo '+campo+' é obrigatório!' );
                return false;

        }
        else
                return true;

}
function id( el ){
        return document.getElementById( el );
}
function checkMail(mail){
    var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
    if(typeof(mail) == "string"){
        if(er.test(mail)){
            return true; }
    }else if(typeof(mail) == "object"){
        if(er.test(mail.value)){
            return true;
        }
    }else{
        return false;
    }
}
//]]>
</script>

Formulário com o campo que não está sendo criticado pelo script. A diferença dos outros campo é que indico a id no <input> e aqui é no <select> isso constituo problema?

<select name="Assunto" id="Assunto">
        <option value="Escolha uma opção/assunto">Escolha uma opção/Assunto</option>
        <option value="Política">Política</option>
        <option value="Hobby">Hobby</option>
        <option value="Informática">Informática</option>
        <option value="Religião">Religião</option>
        <option value="Pesquisa">Pesquisa</option>
        <option value="Samba">Samba</option>
</select>

Se manter no formulário "Escolha uma opção/Assunto" ele é enviado assim mesmo.

Não estou indicando "Assunto" no script? Porque está sendo enviado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

opção 1:

<option value="0">Escolha uma opção/Assunto</option>
assim o teu script atual, já dá conta de ver se é este option que está selecionado.

 

opção 2:

manter o HTML, e adicionar a exceção na verificação:

if( id(campo).value=='' || id(campo).value==0 || id(campo).value=='Escolha uma opção/assunto' ){

:lol:

 

procure entender o script. Estude.

Lembro que eu mesmo fiz esse script um tempo atrás.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É isso que estou fazendo. Como não tenho livro atual acordei hoje refazendo todos os exercócios do Alan Carvalho - Desenvolvendo na Web com JavaScript.

Estava tudo funcionando porém e empresa de hospegem pediu para mudar algumas coisas dai começou os problemas e não acertei mais.

Mais estou estudando sim.Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

William,

Tudo resolvido.

Estou estudando mas no início acredito que seja assim mesmo.

Sucesso na sua vida e muito obrigado pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

então.. a alteração que eu sugeri, você deveria ter trocado, e não adicionado tudo de novo..

 

a função fica:

function obr( campo )
{
	if( id(campo).value==' ' || id(campo).value==0||id(campo).value=='Escolha uma opção/assunto'){
		alert( 'O campo '+campo+' é obrigatório!' );
		return false;
	}
	else
		return true;
}

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.