none
Testar variável JavaScript RRS feed

  • Discussão Geral

  • Uso VS2010, AspNet4, C#, JavaCcript

    No lado cliente usando JavaScript, estou tentando simplificar (reduzir) um código que tenho, para verificar se uma variável possui ou não algum valor, estou fazendo assim:

    ---------------------

    var nome = $("#txtNome").val();

    if (!txtNome || txtNome== "" || txtNome== null || txtNome == "undefined")
    {
         alert("Informe o Nome");
         return false;
    }
    --------------------
    O código acima funciona, mas tem como simplificar esses testes de forma que funcione?


    Álvaro Luiz

    • Tipo Alterado Giovani Cr segunda-feira, 27 de janeiro de 2014 18:43
    domingo, 19 de janeiro de 2014 12:09

Todas as Respostas

  • if ($.trim(txtNome).length > 0)

    domingo, 19 de janeiro de 2014 14:15
  • Álvaro,

    Para campos em que o valor for uma "string",  escreva seu "if" deste modo:

    if (nome.trim().length > 0) { 
       alert('Preencha o nome !');
       nome.focus();
       return false;
    }

    Veja o link: 

    http://msdn.microsoft.com/pt-br/library/ie/ff679971(v=vs.94).aspx 

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    domingo, 19 de janeiro de 2014 19:22
  • Está errada a função acima. Se o campo tem tamanho maior que 0 então está preenchido. Não deve disparar o alerta nesse caso nem retornar false
    domingo, 19 de janeiro de 2014 20:57
  • Está errada a função acima. Se o campo tem tamanho maior que 0 então está preenchido. Não deve disparar o alerta nesse caso nem retornar false

    Álvaro,

    O Tiago está certo. O correto é "==".

    Não esqueça de marcar todos os posts que ajudaram na sua solução como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    domingo, 19 de janeiro de 2014 21:05
  • Voces concordam comigo que muitos usuários "ainda" usam o windows xp?! Então a função deve funcionar no ie =>6. Se não me engano a solução apresentada funciona apenas no IE => 9

    Álvaro Luiz

    segunda-feira, 20 de janeiro de 2014 10:48
  • Voces concordam comigo que muitos usuários "ainda" usam o windows xp?! Então a função deve funcionar no ie =>6. Se não me engano a solução apresentada funciona apenas no IE => 9

    Álvaro Luiz

    Álvaro,

    Concordo, para Web sites e Hot sites ainda é necessário fazem todo o desenvolvimento e testes à partir do IE6.

    Apenas adaptei à referência para o objeto "txtNome" .

    var nome = document.forms[0].txtNome;

    if (nome.trim().length > 0) { 
       alert('Preencha o nome !');
       nome.focus();
       return false;
    }

    O post deve ser realizado somente no fim da função de validação, por este motivo é colocado o "return false".

    Não esqueça de marcar todos os posts que ajudaram na sua solução como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    segunda-feira, 20 de janeiro de 2014 10:56
  • Durval não daria para fazer assim também, simplificando mais ainda para o Álvaro?

    if (document.GetElementByID("<% txtNome.ClientID>").trim().lenght == 0){
        alert("Preencha o Nome!");
        document.GetElementByID("<% txtNome.ClientID>").focus();
        return false;
    }

    Se tiver algum item fora no ID me desculpe fiz direto aqui no editor. 

    Abraço.

    segunda-feira, 20 de janeiro de 2014 12:52
  • Durval não daria para fazer assim também, simplificando mais ainda para o Álvaro?

    if (document.GetElementByID("<% txtNome.ClientID>").trim().lenght == 0){
        alert("Preencha o Nome!");
        document.GetElementByID("<% txtNome.ClientID>").focus();
        return false;
    }

    Se tiver algum item fora no ID me desculpe fiz direto aqui no editor. 

    Abraço.

    Fernando,

    Esta também é uma boa idéia, a diferença neste caso é que parte do javascript é gerado no servidor antes de devolver à requisição do usuário (existe um processamento prévio).

    No script que eu indiquei o javascript é estático, ou seja, ele simplesmente é copiado para interpretação do browser do usuário e pode ser isolado em um arquivo .js para distribuir o carregamento do conteúdo.

    Dependendo da configuração do browser, isto pode agilizar o carregamento da página, mas também pode se tornar um problema por gerar e utilizar constantemente o cache do "temporary internet files". Nem sempre que o desenvolvedor atualizar o arquivo .js ele será atualizado no browser do usuário (mas este é outro problema).

    Em cada situação, podemos utilizar um ou outro script. Ambos estão corretos.

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    segunda-feira, 20 de janeiro de 2014 13:04
  • Usuários de IE6 representa menos de 0.1%.

    Pra mim, um número absolutamente insignificante.

    http://www.modern.ie/ie6countdown

    http://www.w3schools.com/browsers/browsers_explorer.asp

    Mas, cada um cada um

    terça-feira, 21 de janeiro de 2014 11:56
  • Usuários de IE6 representa menos de 0.1%.

    Pra mim, um número absolutamente insignificante.

    http://www.modern.ie/ie6countdown

    http://www.w3schools.com/browsers/browsers_explorer.asp

    Mas, cada um cada um

    Tiago,

    Excelente levantamento! A tendência, com o fim do suporte da MS ao Windows XP é que o IE6 desapareça.

    Talvez, a realidade do Álvaro ainda precise desta análise e tratamento de código.

    Obrigado por compartilhar os links. Muito boa análise.

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    terça-feira, 21 de janeiro de 2014 12:02