Problema Compatibilidade Javascript no Chrome

8 respostas
F

Bom dia Pessoal,
Eu tenho uma função em javascript que busca uma flag e verifica se um combobox esta checado. Apartir desse retorno eu faço uma validação.

Para isso eu usei o seguinte codigo :

function myFunction(){
	var mensagem = new StringBuffer();
	var numtit =0;
	for( i = 0; i < document.getElementsByName( "referencia1" ).length; i++ ){
		if( document.getElementsByName( "referencia1" )[ i ].checked == true && document.getElementsByName( "referencia1" )[ i ].value2 != 'S' ){
			numtit++;
		}
	}
	var retorno = "";
        if(numtit >= 1) {
		retorno = "Problemas na validação";
	}
	return retorno;
}

No IE esse codigo funciona certinho e me retorna perfeitamente o valor armazenado em “document.getElementsByName( “referencia1” )[ i ].value2”

Contudo, no chrome, o value2 esta me retornando “undefined”

Alguem sabe o que pode estar ocorrendo ?

Valew

8 Respostas

A

troca o doctype para html 5 caso você não esteja utilizando e veja se já resolve algo

&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE HTML&gt;
.
.
.
F

andre.froes:
troca o doctype para html 5 caso você não esteja utilizando e veja se já resolve algo

&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE HTML&gt;
.
.
.

Na minha pagina lista.jsp realmente esta usando outro doctype…

&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;

altera para apenas <!DOCTYPE HTML> ?

Obrigado pela atenção

A

Altera sim, veja se funciona. O HTML5 conserta muita coisa, HTML5+CSS3 = o futuro sem muita dor de cabeça kkkk
E outra, não tire o iexplore como navegador base para funcionamento, normalmente ele é o problematico, provavelmente não estará funcionando no opera, safari e firefox também, e somente no internet explorer o script vai funcionar.

Se você fizer isso em jquery é certo que funciona em todos os navegadores

F

andre.froes:
Altera sim, veja se funciona. O HTML5 conserta muita coisa, HTML5+CSS3 = o futuro sem muita dor de cabeça kkkk
E outra, não tire o iexplore como navegador base para funcionamento, normalmente ele é o problematico, provavelmente não estará funcionando no opera, safari e firefox também, e somente no internet explorer o script vai funcionar.

Se você fizer isso em jquery é certo que funciona em todos os navegadores

Cara, não FUNFOU!!!

Continua retornando undefined

&lt;!DOCTYPE HTML&gt;
F

Eu usei o firebug para ver a pagina e o value2 esta alimentado.

<input type="checkbox" value2="S" value3="15" name="nome" value="titulo" onclick="javascript: validarFuncao( this );">

Engrassado não retornar …

Eu vou tentar atribuir o “document.getElementsByName( “referencia1” )[ i ].value2” para uma variavel e validar a variavel …

F

Tambem não deu certo!!

Alguem tem alguma ideia ???

A

O que voce quer fazer exatame te? Quer pegar um valor e validar? Coloca parte do codigo do form e o seu metodo juntos que posso ver melhor o que esta acontecendo.

F

Entao , eu tenho uma tela que verifica se vai ocorrer auteração de data de vencimento apartir de uma função JavaScript.

No IE a função esta retornando valor, untudo no chrome, ela retorna undefined na linha de comando abaixo fazendo com que a validação fique inconsistente:

alert document.getElementsByName( "referencia1" )[ i ].value2

Eu descobri que a cagada estava no meu JSP…

Na seguinte linha :

<input type="checkbox" value2="<bean:write name="titulo" property="flagAltVenc"/>" value3="<bean:write name="titulo" property="tipoCobranca"/>" name="titulosSelecionados" value="<bean:write name="titulo" property="numeroTitulo" format="#" />" onclick="javascript: validarFuncao( this );">

Por algum motivo, o Chrome nao reconhece os value2 e value3.

a solução foi alterar para um unico value e no meu javascript usar o split para buscar ao value que eu quero

<input type="checkbox" value="<bean:write name="titulo" property="flagAltVenc"/>|<bean:write name="titulo" property="tipoCobranca"/>|<bean:write name="titulo" property="numeroTitulo" format="#" />" name="titulosSelecionados" onclick="javascript: validarFuncao( this );">
for( i = 0; i < document.getElementsByName( "titulosSelecionados" ).length; i++ ){
		/*
		arrChave[0] = flagAltVenc      (value2)
		arrChave[1] = tipoCobranca     (value3)
		arrChave[2] = numero do titulo (value)
		*/
		
		arrChave[0]= document.getElementsByName("titulosSelecionados")[i].value.split('|')[0];
		arrChave[1]= document.getElementsByName("titulosSelecionados")[i].value.split('|')[1];
		arrChave[2]= document.getElementsByName("titulosSelecionados")[i].value.split('|')[2];
		
		alert("cont: "+ i  + " checked: "+document.getElementsByName( "titulosSelecionados" )[ i ].checked +
				"Flag: " + arrChave[0] +
				"Titulo: " + arrChave[2]);

		if( document.getElementsByName( "titulosSelecionados" )[ i ].checked == true && arrChave[0] != 'S' ){
			numtit++;
			mensagem.append(arrChave[2]).append(", ");
		}
	}

o problema é que agora esta dando o numero do titulo esta null .

Criado 30 de abril de 2012
Ultima resposta 7 de mai. de 2012
Respostas 8
Participantes 2