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

Ajuda Em Um Script


Guest Rafael Sobreira Braga

Pergunta

Guest Rafael Sobreira Braga

Olá pessoal!

Gostaria de colocar um pequeno script que vem de um arquivo exteno em várias páginas onde contém um form, mais eu gostaria de fazer rodar o script sem poder editar página por página. O scritp usa um onload no body e um onKeyPress nos inputs/textareas.

Por exemplo: o script da página extena encontra o body da página onde foi incluso e adiciona o onload, o mesmo acontece com os campos do formulário, o script procura os inputs e textareas e adiciona o onKeyPress. Assim não precisarei editar página por página.

Alguém poderia me ajudar?

function VerificaCaracteres(caracter) {
    if(window.event) // Internet Explorer
      var tecla = event.keyCode;

     else  // Firefox
      var tecla = caracter.which;

     if((tecla == 35) || (tecla == 34) || (tecla == 39) || (tecla == 60) || (tecla == 62) || (tecla == 59)) { 
      alert("Você não usar os caracteres: # \" ' < >;");
      return false;
     }
     else 
         return true; 
}

No body ->> onload="document.form.campo.focus()"
Nos inputs/textareas ->> onKeyPress="return VerificaCaracteres(event);"

Lembrando que esse script é para bloquear alguns caracteres indesejáveis dos campos...

Muito obrigado e abraço a todos.

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0
Guest Rafael Sobreira Braga

Isso mesmo babaloricha!

Vou a anexar esse script em varias paginas que contem formularios e vários campos. Eu queria a solução para que eu não precise editar todas as páginas para poder usar esse script externo entede?

Nesse script que tenho, eu teria que colocar um onload no body em todas as páginas e o onKeyPress em todos os campos dessas páginas, sendo que tenho mais de 1.000 página para editar....

Entendeu minha necessidade?

Obrigado!!!

Link para o comentário
Compartilhar em outros sites

  • 0

bom ano precisa coloca em todos afinal isso seria serviço de louco!!!!!

da uma estudada em addEventListener, fiz um codigo pra ve se te ajuda!

<body>
<div id="minha">
<form name="form">
<input type="text" />
<input type="text" />
</form>
</div>
<script language="javascript">
var minhaDiv=document.getElementById("minha");
minhaDiv=addEventListener("keypress", opa,true);
function opa(){
    alert("opa");
}
</script>
</body>

so que no lugar da funcao opa! você coloca a sua função! :P

t+ registra ai no forum qu a galera aki ajuda bastante!

Link para o comentário
Compartilhar em outros sites

  • 0

vê este código:

<script type="text/javascript">
function minhaFuncao() {
    alert("oi");
}
document.body.onload = minhaFuncao;
</script>

Ele faz com que a funcao minhaFuncao() seja executada no evento onload da tag body. Acredito que seja isso que você está kerendo. O inconveniente que encontrei é que você só pode executar a instrução document.body.onload = minhaFuncao; depois de a tag body já ter sido escrita. Portanto o script só pode ser executado dentro da tag BODY ou após ela.

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado babaloricha e obrigado rajneesh.

Deu uma estudada, olhei uns exemplos que o pessoal me mandou e cheguei no script abaixo:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script type="text/javascript">

//funcao pra adicionar eventos
function addEvent(obj, evType, fn){
    if (obj.addEventListener) // Usuário Inteligente
            obj.addEventListener(evType, fn, true)
    if (obj.attachEvent) // Usuário do IEca
            obj.attachEvent("on"+evType, fn)
}

function VerificaCaracteres(caracter) {
    if(window.event) // Internet Explorer
      var tecla = event.keyCode;

     else  // Firefox
      var tecla = caracter.which;

     if((tecla == 35) || (tecla == 34) || (tecla == 39) || (tecla == 60) || (tecla == 62) || (tecla == 59)) { 
      alert("Você não usar os caracteres: # \" ' < >;");
        return false;
     }
     else 
         return true; 
}


var TrackForm = function() {
  // Pega todos elementos input que achar na página
  var elementsForm = document.getElementsByTagName("form");
  for(var i = 0; i < elementsForm.length; i++) {
    // Pra cada um input encontrado adiciona o "keypress"
        addEventListener("keypress", VerificaCaracteres, true);
  }
}
// Quando a janela carregar, adiciono a função VerificaCaracteres nos elementos do formulário
addEvent(window, "load", TrackForm); 

</script>

</head>

<body>
Caracteres Bloqueados:<b> # &nbsp;" &nbsp;' &nbsp;< &nbsp;> &nbsp;; </b>
    <br />
<form name="form">
    <input type="text" /><br />
    <input type="text" /><br />
    <input type="text" /><br />
    <input type="text" /><br />
    <textarea></textarea>
</form>


</body>
</html>

Ele pegou os elementos do form e adicionou a função, o problema que quando o clico no botão ok da janela de alerta, escreve o caractere que era pra ser bloqueado. Por exemplo, eu digito o caractera ";" (ponto e vírgula) que nesse script é um caracter para ser bloqueado, depois que a janela de alerta aparece e eu clico em OK o ponto e vírgula é escrito no campo do formulário. Era pra voltar com FALSE e não aparecer nada no campo..

Podem dar uma forcinha pra mim?

Obrigado!

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Rafael Sobreiara Braga

Consegui uma ajuda em outro forum com o amigo Micox, o script está rodando belezinha mais o problema é que ele está pegando os campos dos formulários do tipo hidden que são campos escondidos e fazendo com que eles aparesaum na tela.

Parece que está transformando o campo tipo hidden em um campo tipo text.

Estou tentando fazer que o script ignore os campos tipo "hidden" mais não obtive nenhum sucesso, se alguém tiver uma idéia posta ae pra gente.

Grande abraço a todos.

Scrit logo abaixo:

//funcao pra adicionar eventos
function addEvent(obj, evType, fn){
    if (obj.addEventListener)
        obj.addEventListener(evType, fn, true)
    if (obj.attachEvent)
        obj.attachEvent("on"+evType, fn)
}

function VerificaCaracteres(e) {
    if(typeof(e)=='undefined')var e=window.event
    source=e.target?e.target:e.srcElement
    if(source.nodeType == 3)source = source.parentNode

    if(document.all){var tecla = e.keyCode}
    else { var tecla = e.charCode;}

    if((tecla == 59)) {
        /* alert("Você não usar os caracteres: # \" ' < >;"); */
        if(e.preventDefault){ e.preventDefault(); }
        return false;
    }else{
        return true;
    }
}

function ativaFiltro(){
    //colocando nos inputs
    var inputs = document.getElementsByTagName('input');
    for(var i in inputs){
      if(inputs[i].type='text'){
        addEvent( inputs[i], 'keypress', VerificaCaracteres )
      }
    }
    
    //colocando nos textareas
    var textA= document.getElementsByTagName('textarea');
    for(var i in textA){
      if(textA[i].type='text'){
        addEvent( textA[i], 'keypress', VerificaCaracteres )
      }
    }
}


//fazendo o onload do body
addEvent(window,'load', ativaFiltro );

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...