Java Script?

Galera blx…

to fazendo um validação de campo com Java Script,
porem to com dificuldade em ler um campo Texto…
tipo assim :

Campo:

 Nome.....: <input type="text" 
			             size="20" 
				      name="Nome"
				      onBlur="nome(Nome.value)"
			/>

Funcção que é chamada:

function nome(nome){
  if (nome == null) <!-- Existe isso aqui ?-->
      alert('Não pode ser Nulo');
  else
	alert ('OK!');
	}

No caso eu gostaria que qnado o campo fose vazio desse a mensagem, e
qndo tivesse preenchido desse outra mensagem no caso ‘OK’!;

Obs: java fiz outro campos numericos e funcionou blx…

cara, não valida por NULL

no caso nunca vai ser null, valida por “”

exemplo

Nome.....: <input type="text" size="20"  name="Nome" onBlur="nome(this.value)"  
   function nome(nome){  
      if (nome == "" ) 
          alert('Não pode ser Nulo');  
      else  
        alert ('OK!');  
     }  

No seu caso o código JS não vai saber “quem” é “Nome”. O melhor é fazer isso:

 Nome.....: <input type="text" size="20" name="Nome" onBlur="nome(this.value)"/>

Aqui o JS vai “saber” que “this” refere-se ao prórpio campo

function nome(nome){
  if (nome == null) <!-- Existe isso aqui ?-->
      alert('Não pode ser Nulo');
  else
	alert ('OK!');
	}

Até que existe, mas acho melhor fazer isso:

function nome(nome){
  if (nome)
	alert ('OK!');
  else
      alert('Não pode ser Nulo');
}

No JS 0, null, String vazia (""), undefined são lidos como false (além do próprio literal false, é claro).
EDIT: Se na sua função você enviar uma String com espaços (" ") ela será avaliada como true. Se isso for importante você deveria usar uma espécie de trim em nome. Mas como no String não existe função trim :frowning: . Você teria que improvisar.

pode também usar

function nome(valor) {
  if (! valor)
    alert("valor nulo ou indefinido")
  else if (valor.length == 0)
    alert("valor vazio")
}

null e undefined são avaliados como false.

Cara Obrigado funcioou perfeito…

aproveitando gostaria de saber se isso tem alguma logica:

é assim eu tenho dois campos cada um eu seto um valor,e em um terceiro campo sai a media deles:

 Valor1.....: <input type="text" 
			            size="4" 
				        name="valor1"
				        onBlur="media(this.value)"
						/><br>
	  Valor2.....:  <input type="text" 
			            size="4" 
				        name="valor2"
				        onBlur="media(this.value)"
						/><br><br>
	  Média.....:  <input type="text" 
			            size="4" 
				        name="valor2"
				        onChange="media"
						/>

funcão:

function media (a,b){
 return media = a+b/2;
 }
 

se puder me ajudar…

Grato.

[quote=Java_Terminator]Cara Obrigado funcioou perfeito…

aproveitando gostaria de saber se isso tem alguma logica:

é assim eu tenho dois campos cada um eu seto um valor,e em um terceiro campo sai a media deles:

 Valor1.....: <input type="text" 
			            size="4" 
				        name="valor1"
				        onBlur="media(this.value)"
						/><br>
	  Valor2.....:  <input type="text" 
			            size="4" 
				        name="valor2"
				        onBlur="media(this.value)"
						/><br><br>
	  Média.....:  <input type="text" 
			            size="4" 
				        name="valor2"
				        onChange="media"
						/>

funcão:

function media (a,b){
 return media = a+b/2;
 }
 

se puder me ajudar…

Grato.[/quote]
Primeiro o nome do terceiro input deveria ser media, não?
Depois na sua função poderia ser

function media() {
    form.media.value = (form.valor1.value + form.valor2.value) / 2
}

Por “form” você teria que substituir por pelo nome do form no HTML ou - se for o único form da página - poderia ser document.forms[0]. O JS vai automaticamente converter os valores dos campos valor1 e valor2 para números. Claro que se vocês entrar caracteres não numéricos você terá problemas.
PS: Este tópico não deveria estar na seção de outras linguagens?

VIXI…, num tem logica não…rs.

Só para dar uma clareada, pensa assim:
vc criou uma função que recebe dois parâmetros, e quer q ele retorne a media desses dois valores certo?!

Bom, vc precisa pelo menos dizer quem é o parâmetro “a” e parâmetro “b”

se liga nessa idéia e veja se te ajuda:

Valor1.....: <input type="text"   
                    size="4"   
                    name="valor1"/><br>   
  Valor2.....:  <input type="text"   
                    size="4"   
                    name="valor2" onChange="javascript: media(valor1, valor2);"/><br><br>   
  Média.....:  <input type="text"   
                    size="4"   
                    name="valor2"/> 

no js

function media (a,b){   
valor2.value=return media = a+b/2;   
}

Eu toh com preguiça de testar, mas a idéia mais simples seria essa…

PS: Aceito sugestões tb!!! :slight_smile:

Abs();

VIXI…, num tem logica não…rs.

Só para dar uma clareada, pensa assim:
vc criou uma função que recebe dois parâmetros, e quer q ele retorne a media desses dois valores certo?!

Bom, vc precisa pelo menos dizer quem é o parâmetro “a” e parâmetro “b”

se liga nessa idéia e veja se te ajuda:

Valor1.....: <input type="text"   
                    size="4"   
                    name="valor1"/><br>   
  Valor2.....:  <input type="text"   
                    size="4"   
                    name="valor2" onChange="javascript: media(valor1, valor2);"/><br><br>   
  Média.....:  <input type="text"   
                    size="4"   
                    name="valor2"/> 

no js

function media (a,b){   
valor2.value=return media = a+b/2;   
}

Eu toh com preguiça de testar, mas a idéia mais simples seria essa…

PS: Aceito sugestões tb!!! :slight_smile:

Abs();

function media (a,b){   
valor2.value=return media = a+b/2;   
}

Essa função está sintaticamente errada!

Galera esses codigo não funcionou…
teria outra maneira de fazer, será que ta
certo?

Grato

[quote=Java_Terminator]Galera esses codigo não funcionou…
teria outra maneira de fazer, será que ta
certo?

Grato[/quote]

Lembre-se, lá nos tempos que você estava aprendendo a calcular, que a operação de divisão tem precedência à de adição, e que operações entre parênteses serão executadas primeiro.

Fora que em JavaScript, decimais são separados por ponto, não pro vírgula.

Terceiro é que existem escopos, uma variável criada dentro de uma função, permanece lá dentro. Você tem que indicar o lugar na página que quer substituir.

A sintaxe não é tão diferente de Java para ter muita dificuldade.

Segue uma função sintaticamente correta…hehe.

[code]





[/code]

Só um detalhe viu, eu não validei nem se eh vazia ou se recebe algo diferente de “inteiro”…, se eh q vc me entende hehe…, dai acho q eh com vc!

Abs();

Pessoalmente, ja sou mais a favor de javascript desobstrusivo. Tenho que alguns exemplos aqui, com jQuery, ficam muito mais elegantes e faceis de manter.

Pena q estou com uma preguiça de dar um exemplo :slight_smile: mas o http://jquery.com/ tem exemplos de sobra.