Ir para conteúdo

POWERED BY:

Arquivado

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

Beraldo

Impedir seleção de texto, mas permitir digitação em formulário

Recommended Posts

Olá, pessoal! http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif

 

 

Entendo pouco de JavaScript, então peço ajuda a vocês. http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif

 

 

Eu tenho um script que impede a seleção de textos e imagens de uma página. O problema é que ele está impedindo que um campo de formulário receba foco para receber valor.

 

Vejam o código que montei para testar:

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http-~~-//www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
[url="http-~~-//december.com/html/4/element/html.html"]<html[/url] xmlns="http-~~-//www.w3.org/1999/xhtml">
[url="http-~~-//december.com/html/4/element/head.html"]<head>[/url]
[url="http-~~-//december.com/html/4/element/script.html"]<script[/url] type="text/javascript">
function disableselect(e)
{
    return false
}

function reEnable()
{
    return true
}

document.onselectstart = new Function ("return false")

if (window.sidebar)
{
    document.onmousedown = disableselect
    document.onclick = reEnable
}
</script>
[url="http-~~-//december.com/html/4/element/title.html"]<title>[/url]Teste</title>
</head>
[url="http-~~-//december.com/html/4/element/body.html"]<body>[/url]
[url="http-~~-//december.com/html/4/element/h2.html"]<h2>[/url]Texto que não poderá ser selecionado.</h2>
[url="http-~~-//december.com/html/4/element/form.html"]<form[/url] action="">
[url="http-~~-//december.com/html/4/element/p.html"]<p>[/url]Campo que pode receber dígitos</p>
[url="http-~~-//december.com/html/4/element/input.html"]<input[/url] type="text" name="campo1" />
</form>
</body>
</html>

Vejam que a seleção é sempre impedida, mas também não é possível digitar algo no campo do form.

 

Estou tentando descobrir o que é o window.sidebar, mas ainda não encontrei nada sobre isso.

 

Creio que eu teria de fazer algo que reconhecesse qual é o objeto selecionado. Se for um elemento de formulário, a seleção não pode ser impedida.

 

Como posso fazer isso?

 

Obrigado

 

Abraços,

Beraldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu, Alexandre.

 

Apenas acrescentei o textarea no if, para funcionar adequadamente:

 

function disableselect(e)
{
	if(e.target.tagName != "INPUT" && e.target.tagName != "TEXTAREA")
	{
		return false
	}
	return true
}

Agora está funcionando corretamente.

 

Valeu! http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif

 

Abraços,

Beraldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

galera, so unindo o util ao agradevel , me deem uma luz

 

do mmodo que esta essa funcao, ela bloqueia todos os inputs, como especificar os que ela pode ou nao bloquear a selecao ? ex. a caixa de texto a é bloqueada para a selecao, a caixa de texto B nao.

Compartilhar este post


Link para o post
Compartilhar em outros sites

galera, so unindo o util ao agradevel , me deem uma luz

 

do mmodo que esta essa funcao, ela bloqueia todos os inputs, como especificar os que ela pode ou nao bloquear a selecao ? ex. a caixa de texto a é bloqueada para a selecao, a caixa de texto B nao.

Use o ID do objeto para impedir ou não sua seleção. Para montar o IF, faça como o Alexandre mostrou, apenas trocando tagName por id.

 

http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara isto funciona é simples e funciona, coloca numa função que eu estou no corre... ate mais

 

<input type="text" value="texto1"

onselect="document.getElementById('novo').focus();"

ondblclick="document.getElementById('novo').focus();">

<!-- evento (ondblclick) é por causa do IE que é uma bosta e não entende que quando eu do o dublo clique ele tambem seleciona -->

 

<input id="novo" type="text" value="texto 2">

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.