Ir para conteúdo

POWERED BY:

Arquivado

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

Martinsrj

[Resolvido] Não é possível mover o foco para o controle porque es

Recommended Posts

Olá pessoal, boa noite!

Possuo um formulario onde o usuario utiliza o enter para navegar entre os campos. Em certo campo do formulario eu verifico se determinado campo foi preenchido com o codigo 03 e caso positivo um determindado campo dinamicamente eu coloco disable, porem se o usuario quiser corrigir o campo que foi preenchido com com o codigo 03 e mude para outro codigo aparece a seguinte mensagem de erro:

 

Detalhes dos erros da página da Web

 

Agente de Usuário: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6.5; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322; OfficeLiveConnector.1.4; OfficeLivePatch.1.3; yie8)

Carimbo de data/hora: Mon, 6 Sep 2010 01:01:58 UTC

 

 

Mensagem: Não é possível mover o foco para o controle porque este é invisível, não habilitado ou de um tipo que não aceita foco.

Linha: 420

Caractere: 307

Código: 0

URI: http://www.dominio.com.br/sistema/emp27_cadastro2.asp?operacao=incluir

 

Código de java script abaixo:

          response.write "<script>" 
          response.write "function EnterFocaProximo(obj, e) {  "
          response.write "	if (e.keyCode == 13) {"
          response.write "		var i = 0;"
          response.write "		while (i < obj.form.length)"
          response.write "			if (obj.form[i++] == obj)"
          response.write "				break;"
  		  'response.write "				alert(i);"
		  'response.write "     	while ((obj.form[i % obj.form.length].type == 'hidden' || obj.form[i % obj.form.length].name.substr(0,4) == 'Ex1_') && (i < obj.form.length) )"
          response.write "     	while ((obj.form[i % obj.form.length].type == 'hidden' || obj.form[i % obj.form.length].name.substr(0,4) == 'Ex1_') && (i < obj.form.length) )"
          response.write "             i++;"
          response.write "		obj.form[i % obj.form.length].focus();"
		  'response.write "				alert(i);"
		  'Response.Write " (document.getElementById('campo').disabled==true);"
		  
		  'response.write "              if (obj.form[i % obj.form.length].focus().disabled==true)"
		  'response.write "				{ "
		  'response.write "	            	alert('Inativo'); "
  		  'response.write "				} "
		  		  
          response.write "		e.keyCode = 0;"
          response.write "	}"
          response.write "}"
         response.write "</script>"
Como que eu posso mover focus para o campo que nao esteja desabilitado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui resolver a situação, agora o código está dessa forma:

 

function EnterFocaProximo(obj, e) {  	
if (e.keyCode == 13) {		
	var i = 0;		
	while (i < obj.form.length)	
		if (obj.form[i++] == obj)
		break;     	
	while ((obj.form[i % obj.form.length].type == 'hidden' || obj.form[i % obj.form.length]disabled==true) || obj.form[i % obj.form.length].name.substr(0,4) == 'Ex1_') && (i < obj.form.length) )             
		i++;		
		obj.form[i % obj.form.length].focus();		
		e.keyCode = 0;	
	}
}

Mas aparece a seguinte mensagem de erro:

')' esperado

emp27_cadastro2.asp linha 438

 

A linha 438 é tudo isso:

function EnterFocaProximo(obj, e) {  	
if (e.keyCode == 13) {		
	var i = 0;		
	while (i < obj.form.length)	
		if (obj.form[i++] == obj)
		break;     	
	while ((obj.form[i % obj.form.length].type == 'hidden' || obj.form[i % obj.form.length]disabled==true) || obj.form[i % obj.form.length].name.substr(0,4) == 'Ex1_') && (i < obj.form.length) )             
		i++;		
		obj.form[i % obj.form.length].focus();		
		e.keyCode = 0;	
	}
}
</script>
<br><INPUT NAME='gpChave' TYPE=hidden VALUE=''></INPUT><INPUT NAME='operacao' TYPE=hidden VALUE='incluir'></INPUT><table cellspacing=0 cellpadding=0 border=0 class=TabelaEntrada><tr><td class=titulocampo></td><td class=titulocampo ><INPUT NAME='codprocesso' TYPE=hidden VALUE=''></INPUT></td></tr><tr><td> </td><td></td></tr><tr><td colspan=2><font face=verdana size=2> »» <b>Dados do Proprietário<p></td></td></tr><tr><td class=titulocampo valign=top nowrap>CPF/CNPJ:</td><td class=titulocampo  valign=top><INPUT NAME='CPF_CGC' ID='CPF_CGC' TYPE=text  VALUE='087.681.047/40' SIZE=18 MaxLength=18 class=CampoNormal OnKeyPress='EnterFocaProximo(this,event);' onFocus="this.select(); "

Compartilhar este post


Link para o post
Compartilhar em outros sites

na verdade, faltou abrir um (

 

while(((obj.form[i % obj.form.length].type == 'hidden' || obj.form[i % obj.form.length]disabled==true) 
				|| obj.form[i % obj.form.length].name.substr(0,4) == 'Ex1_') && (i < obj.form.length) )

veja pelo Firefox, o debug javascript do ie, é muito 'pobre'.

 

Ctrl + Shif + J (no Firefox)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui resolver a situação assim:

while ((obj.form[i % obj.form.length].type == 'hidden' || obj.form[i % obj.form.length].disabled==true || obj.form[i % obj.form.length].name.substr(0,4) == 'Ex1_') && (i < obj.form.length) )"

 

na verdade, faltou abrir um (

 

while(((obj.form[i % obj.form.length].type == 'hidden' || obj.form[i % obj.form.length]disabled==true) 
				|| obj.form[i % obj.form.length].name.substr(0,4) == 'Ex1_') && (i < obj.form.length) )

veja pelo Firefox, o debug javascript do ie, é muito 'pobre'.

 

Ctrl + Shif + J (no Firefox)

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.