Ir para o conteúdo

Publicidade

 Estatísticas do Fórum

  • 0 Usuários ativos

    0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

Cursos Online iMasters
Foto:

Como saber se um campo de formulário está ou não com o Foco ?

  • Por favor, faça o login para responder
12 respostas neste tópico

#1 MarKteus

MarKteus

    _Markteus

  • Membros
  • 1.018 posts

Postado 18 fevereiro 2010 - 00:59

Olá

Caros colegas preciso checar via JScript ou coisa que o valha se um determinado campo de um formulário HTML possui o foco ou não. algo que me retorne true or false, para eu saber se o campo está atualmente com o foco.

É possivel ?

O campo em questão é do tipo "text", mas agradeceria se outras formas de checar o foco para outros tipos de campos tbm me fosse passado, por exemplo SELECT´s RADIO BUTTON´s etc ?
  • 0

#2 Maujor

Maujor
  • Masters
  • 643 posts

Postado 18 fevereiro 2010 - 08:33

Foco não é uma característica estática de um elemento HTML.
Um campo de formulário ganha foco quando o usuário "entra" no campo,
assim, use o evento onfocus no campo
para executar um ação.
  • 0

#3 Dee

Dee
  • Banidos
  • 0 posts

Postado 18 fevereiro 2010 - 08:56

Para que você quer isso ?

#4 MarKteus

MarKteus

    _Markteus

  • Membros
  • 1.018 posts

Postado 18 fevereiro 2010 - 16:52

Para que você quer isso ?


Para saber onde está o foco

Foco não é uma característica estática de um elemento HTML.
Um campo de formulário ganha foco quando o usuário "entra" no campo,
assim, use o evento onfocus no campo
para executar um ação.


Seria tipo:
if (frmNome.varCapo.OnFocus = true)
{
alguma coisa;
}

  • 0

#5 Dee

Dee
  • Banidos
  • 0 posts

Postado 18 fevereiro 2010 - 16:53

Vou reformular minha pergunta, achei que você ia entender.

Para que você quer verificar se o campo está com foco ?
Qual seu objetivo ?

Depende de qual for pode haver outras sugestões.

#6 MarKteus

MarKteus

    _Markteus

  • Membros
  • 1.018 posts

Postado 18 fevereiro 2010 - 23:07

Vou reformular minha pergunta, achei que você ia entender.

Para que você quer verificar se o campo está com foco ?
Qual seu objetivo ?

Depende de qual for pode haver outras sugestões.


Ah! Sim. Beleza, vou reformular a resposta. :)

Em meu código tenho algo assim:
while not rsTabelas.Eof
%>
<tr class="tdProp">
<td>
<%
if cInt(alteraRegistro) = rsTabelas("id") then
%>
<input type="text" name="altNome" value="<%=rsTabelas("nome")%>" size="60">
<%
else
%>
<a href="javascript:selectForChange('<%=rsTabelas("id")%>')" class="myLink"><%=rsTabelas("nome")%></a>
<%
end if
%>
</td>

o JS em destaque realiza um submit e dependendo do valor da variável alteraRegistro ele cria ou não um input.

agora quero implementar algo do tipo: Quando eu clicar em gravar ou seja terminar a edição do campo seja dado um disabled ou onReadyOnly ou até mesmo um hidden sei lá, nesse input, mas antes queria me certificar de o foco realmente está nele. para realizar o comando em questão, algo como frm.nomecampo.ofocus=false; ou frm.nomecampo.disable=false; ou ainda frm.nomecampo.active(disabled)=false e tbm para saber como checar se uma tag de formulário está disable, enabled, escondido, não escondido, com foco ou sem. :)

  • 0

#7 Thiago Retondar

Thiago Retondar
  • Membros
  • 5.643 posts

Postado 19 fevereiro 2010 - 12:50

Tenta assim:

frmNome.varCapo.onfocus = function(){
	alert("campo com foco");
};

agora quero implementar algo do tipo: Quando eu clicar em gravar ou seja terminar a edição do campo seja dado um disabled ou onReadyOnly ou até mesmo um hidden sei lá, nesse input, mas antes queria me certificar de o foco realmente está nele. para realizar o comando em questão, algo como frm.nomecampo.ofocus=false; ou frm.nomecampo.disable=false; ou ainda frm.nomecampo.active(disabled)=false e tbm para saber como checar se uma tag de formulário está disable, enabled, escondido, não escondido, com foco ou sem. :)

#entendinada

:thumbsup:
  • 0

#8 MarKteus

MarKteus

    _Markteus

  • Membros
  • 1.018 posts

Postado 19 fevereiro 2010 - 15:24

Tenta assim:

frmNome.varCapo.onfocus = function(){
	alert("campo com foco");
};

agora quero implementar algo do tipo: Quando eu clicar em gravar ou seja terminar a edição do campo seja dado um disabled ou onReadyOnly ou até mesmo um hidden sei lá, nesse input, mas antes queria me certificar de o foco realmente está nele. para realizar o comando em questão, algo como frm.nomecampo.ofocus=false; ou frm.nomecampo.disable=false; ou ainda frm.nomecampo.active(disabled)=false e tbm para saber como checar se uma tag de formulário está disable, enabled, escondido, não escondido, com foco ou sem. :)

#entendinada

:thumbsup:


E se por acaso eu quiser se o campo está enabled ou disabled ou se é readOnly ou não ?
  • 0

#9 Thiago Retondar

Thiago Retondar
  • Membros
  • 5.643 posts

Postado 19 fevereiro 2010 - 15:34

Assim:

if(frmNome.varCapo.disabled) alert("Campo desabilitado");
Prefira percorrer os elementos com DOM (Document Object Model).

:thumbsup:
  • 0

#10 MarKteus

MarKteus

    _Markteus

  • Membros
  • 1.018 posts

Postado 20 fevereiro 2010 - 00:37

Assim:

if(frmNome.varCapo.disabled) alert("Campo desabilitado");
Prefira percorrer os elementos com DOM (Document Object Model).

:thumbsup:


Esse seus dois exemplos seriam uma forma de percorrer os elementos DOM ?
  • 0

#11 Thiago Retondar

Thiago Retondar
  • Membros
  • 5.643 posts

Postado 20 fevereiro 2010 - 09:33

Não.

O jeito que falei, no seu caso, seria pra trabalhar com getElementById, getElementsByTagName, etc.

:thumbsup:
  • 0

#12 MarKteus

MarKteus

    _Markteus

  • Membros
  • 1.018 posts

Postado 21 fevereiro 2010 - 17:24

Não.

O jeito que falei, no seu caso, seria pra trabalhar com getElementById, getElementsByTagName, etc.

:thumbsup:


Caro Retondar

Como eu faço para por exemplo:
desabilitar um campo do tipo input type usando javascript
+ ou - assim quero fazer um campo cujo o nome é teste ficar inacessivel (tipo readOnly)

seria assim:
function checkFocus()
{
var frmNome2 = document.incluir;
if (frmNome2.altNome.onFocus)
{
frmNome2.nome.disable = true;
}
}


Ou

function checkFocus()
{
var frmNome2 = document.incluir;
if (frmNome2.altNome.onFocus)
{
frmNome2.nome.enabled = false;
}
}

ou ainda

function checkFocus()
{
var frmNome2 = document.incluir;
if (frmNome2.altNome.onFocus)
{
frmNome2.nome = enabled;
}
}


???
  • 0

#13 Thiago Retondar

Thiago Retondar
  • Membros
  • 5.643 posts

Postado 21 fevereiro 2010 - 19:03

Já foi mostrado a técnica acima:

function checkFocus(){
	var frmNome2 = document.incluir;
	frmNome2.altNome.onfocus = function(){
		frmNome2.nome.disabled = true;
	};
}
:thumbsup:
  • 0




Publicidade

/ins>