Ir ao conteúdo

Validação e-mail


AndréSGomes

Posts recomendados

Postado

Senhores,


 


Estou tentando fazer uma validação em um formulário mas o erro permanece, sempre no mesmo ponto.


Sempre para na parte destacada em vermelho.


 


Vou colocar o código aqui na esperança de que alguém me socorra, ok?


 


Também não entendi porque a última parte do código, destacado em vermelho, pois testamos os campos do form dentro de um if/else, mas assim que terminamos é chama a função destacada. Alguém poderia me explicar?


 


Form:



          <form action="#" method="post" id="cform" name="cform" class="clearfix">
            <ul id="homehireus" class="hireform">
              <li>
                <label>Nome:<span class="required">*</span></label>
                <input name="name" id="name" type="text" value="" tabindex="1">
              </li>
              <li>
                <label>Telefone:</label>
                <input name="phone" id="phone" type="text" value="" tabindex="3">
              </li>
              <li>
                <label>Email:<span class="required">*</span></label>
                <input name="email" id="email" type="text" value="" tabindex="2">
              </li>
              <li>
                <input type="button" id="send-message" value="Envie sua mensagem" tabindex="4">
              </li>
            </ul>
          </form>

Arquivo js
$(document).ready(function () {
    $('div#output').hide();
    //bind send message here
    $('#send-message').click(sendMessage);
    $('button.close').live('click', function () {
        $(this).parent().find('p').html('');
        $(this).parent().hide();
    });
});

/* Contact Form */
function checkEmail(email) {
    var check = /^[\w\.\+-]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,6}$/;
    if (!check.test(email)) {
        return false;
    }
    return true;
}

function sendMessage() {
   
    // receive the provided data
    var name = $("input#name").val();
    var email = $("input#email").val();
    var phone = $("input#phone").val();
    
    // check if all the fields are filled
    if (name == '' || phone == '' || email == '') {
        $("div#output").show().html('<button type="button" class="close" data-dismiss="alert-close">x</button><p class="alert-close">Você deve preencher todos os campos!</p>');

        return false;
    }

    // verify the email address
    if (!checkEmail(email)) {
        $("div#output").show().html('<button type="button" class="close" data-dismiss="alert">x</button><p>Por favor digite um e-mail válido!</p>');
        return false;
    }

    // make the AJAX request
    var dataString = $('#cform').serialize();
    $.ajax({
        type: "POST",
        url: 'contact.php',
        data: dataString,
        dataType: 'json',
        success: function (data) {
            if (data.success == 0) {
                var errors = '<ul><li>';
                if (data.name_msg != '')
                    errors += data.name_msg + '</li>';
                if (data.email_msg != '')
                    errors += '<li>' + data.email_msg + '</li>';
                if (data.phone_msg != '')
                    errors += '<li>' + data.phone_msg + '</li>';

                $("div#output").removeClass('alert-success').addClass('alert-error').show().html('<button type="button" class="close" data-dismiss="alert">x</button><p> Verifique sua digitação!</p>' + errors);
            }
            else if (data.success == 1) {

                $("div#output").removeClass('alert-error').addClass('alert-success').show().html('<button type="button" class="close" data-dismiss="alert">x</button><p>Sua mensagem foi enviada com sucesso!</p>');
            }

        },
        error: function (error) {
            $("div#output").removeClass('alert-success').addClass('alert-error').show().html('<button type="button" class="close" data-dismiss="alert">x</button><p> VERIFIQUE SUA DIGITAÇÃO!</p>' + error.statusText);
        }
    });

    return false;
}

Obrigado pela ajuda.


Postado

Mog.Lucas,
 
Não descrevi corretamente o erro, não é? Desculpe.
Bom, vou tentar ser mais claro agora.
 
Assim que clico em submeter o formulário é chamada a função abaixo, sempre essa função:
error: function (error) {
            $("div#output").removeClass('alert-success').addClass('alert-error').show().html('<button type="button" class="close" data-dismiss="alert">x</button><p> VERIFIQUE SUA DIGITAÇÃO!</p>' + error.statusText);
        }
 
Minha pergunta é a seguinte:
Essa parte do código é necessária? Pergunto porque a validação ocorre dentro da estrutura seletiva if/else que também imprime na tela o erro ou o sucesso no preenchimento dos dados.
 
No meu entendimento independente de erro ou não essa função sempre será chamada. Estou correto ou enganado?
 
Obrigado pela resposta.

  • 4 semanas depois...
  • Membro VIP
Postado

Está enganado. A função do error: só será chamada em caso de erro. No caso a sua requisição ajax está encontrando algum erro, seja ele 404 (pagina não encontrada), 500 (erro do servidor) ou coisa parecida.. recomendo você utilizar algum software como o Firebug para analisar as requisições feitas pelo navegador e identificar qual é o erro que está ocorrendo com sua requisição ajax.

 

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!