Ir para conteúdo
Fórum Script Brasil
  • 0

Impedir Saída Do Campo


asclows

Pergunta

11 respostass a esta questão

Posts Recomendados

  • 0

Baiscamente voce vai jogar a funçao no evento ONBLUR()

De uma olhada na area de scripts dessa secao que tem varios exemplos

Andreia, eu já fiz vários testes com onBlur e onChange porém sem sucesso.

Sobre procurar na sessão de scripts, o farei com certeza, mas poderia me indicar

um que você já sabe que tem este tipo de bloqueio. Porque a maioria dos scripts de validação pelo que tenho visto aqui ou me exibe um alert() ao sair do campo ou na submissão do formulário, ainda não encontrei um que impedisse a saída do campo.

Link para o comentário
Compartilhar em outros sites

  • 0

Andreia teste você mesma este código abaixo que criei afim de testar...

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
<script language="javascript">
function valida(field) {
    alert("Impedir saída!");
    field.focus();
}
</script>
</head>

<body>
<form action="" method="get" name="formulario">
onBlur <input name="fieldTest" type="text" onBlur="valida(this)" />
onChange <input name="fieldTest2" type="text" onChange="valida(this)" />
</form>
</body>
</html>

No onBlur ele não funciona, mas para onChange funciona sim!

Agora teria alguma maneira de bloquear o usuário mesmo que ele não altere nada no campo?

Editado por asclows
Link para o comentário
Compartilhar em outros sites

  • 0

andreia, desculpe por duplicar o name dos inputs (errei na edição do post) já consertei, mas estive fazendo uns testes e é o seguinte...

No IEca funciona sim o onBlur, no Mozilla Firefox o evento onBlur não tem o resultado esperado o campo.focus() não consegue focar o campo desejado.

Então fica a minha pergunta, tem uma maneira cross-browser de fazer isso?

O onBlur seria muito mais interessante em alguns casos do onChange!

Link para o comentário
Compartilhar em outros sites

  • 0

Aqui o evento onbur e a função focus() funcionaram perfeitamente no IE, no FireFox e no Opera.

O código que usei foi este:

<form method="post" action="" name="form1" id="form1">
<input type="text" name="x" onblur="alert('CUIDADO!');this.focus()" />
</form>

O alert é exibido e, em seguida, o campo recebe o foco.

[]'s

Link para o comentário
Compartilhar em outros sites

  • 0

Beraldo, mas não houve validação! Tenta chamar uma função que valida o campo e depois em caso de falha tenta dar o foco pro campo novamente.

O alert() é uma função como outra qualquer que você possa criar. A únnica diferença é que o alert() é nativo do JS. Se funcionar com alert(), confirm(), etc, funcionará com uma função criada por você, desde que ela não contenha erro(s), é claro. :P

Testei com uma função de validação e deu certo da mesma forma:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" language="javascript">
function Validar(x){
	if (x.value.search(/^[0-9]+$/)){
		alert ("ERRO!");
		x.focus();
		return false;
	}else{
		alert ("OK!");
		return true;
	}
}
</script>
<title>Teste</title>
</head>
<body>
<form method="post" action="" name="form1" id="form1">
<input type="text" name="texto" onblur="return Validar(this)" />
</form>
</body>
</html>

[]'s

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...