Duvida basica textarea

12 respostas
Claudia.pt

Olá pessoal!
Tenho a seguinte textarea

<textarea cols="60" rows="5" name="dscrptAv" onKeyDown="limitText(this.form.dscrptAv,this.form.countdown,198);" 
			onKeyUp="limitText(this.form.dscrptAv,this.form.countdown,198);">
		</textarea>

E quero validar o seu preenchimento, pois ela deve ser sempre escrita!!
Mas faço:

if(dscrptAv == null || dscrptAv.equalsIgnoreCase("")) {   
  //ERRO
}

E qdo não é preenchida não dá erro!
PORQUÊ??
Obrigada,
Cláudia

12 Respostas

U

talvez seja q quando ele não este preenchida ela não seja nula.

boa sorte.

Claudia.pt

Exacto.
Mas como ponho-a nula por defeito?

RegisFurtado

tenta utilizar :

faz uma validação na sua classe do tipo

private string textArea;

J

Você precisa acessar o campo de forma completa, nesse seu caso:

document.<nome do form>.<nome do campo>.value

Ex.:

if (document.forms[0].dscrptAv.value == "") {   
   //ERRO
}

Seria bom você aprender mais sobre a hierarquia de objetos para serem utilizados corretamente em JavaScript.

Claudia.pt

Estou validando na servlet.

J

Bom, pelo que vi no seu primeiro post tinha um trecho HTML e um trecho em java. Pensei que você estava misturando as coisas. Em nenhum momento você mencionou validação no servlet.

Agora, sabendo desse pequeno grande detalhe, faça um teste básico. Imprima o conteúdo dela no console da sua IDE pra ver o que ela contém.

Claudia.pt

[code]
System.out.println("dscrptAv: " + dscrptAv + "FIM");
[code]

Imprimindo o campo aparece:
dscrptAv: FIM

Claudia.pt

Não aparece correcto depois de postado.
entre dscrptAv: e FIM acho q aparece um espaço de tab…

J

Então faça o seguinte:

System.out.println("dscrptAv: " + dscrptAv.length() + " FIM");

Se não retornar 0 é por que existe alguma “sujeira” lá.

Claudia.pt

Retorna:
dscrptAv: 2 FIM

J

Parabéns, agora você tem que achar um jeito de limpar a sujeira da variável.

Faça um outro teste e utilize o trim, método da classe String, ele vai retirar os espaços em branco, isso se, claro, for espaço em branco.

Claudia.pt

Ok.
Desenrasquei a situação fazendo

if(dscrptAv.length()==2){dscrptAv = dscrptAv.trim();}

claro que n é a forma mais correcta… mas como esse é uma campo de descrição a pessoa nunca vai preencher só com 2 caracteres, axo…

Criado 22 de novembro de 2006
Ultima resposta 22 de nov. de 2006
Respostas 12
Participantes 4