Ir para conteúdo
Jack Oliveira

Limitar Caracteres digitado de um input

Recommended Posts

Ola pessoal estou tentando fazer um limitado de caracteres digitado de um input para outro input 

 

Ou seja tudo que for digitado no input 1 no input 2 aceitar apenas 20 caracteres por exemplo 

 

<script>
  $(document).ready(function() {
    $(".basic-usage").stringToSlug({
      setEvents: 'keyup keydown blur',
      getPut: '.permalink',
      space: '-',
      prefix: '',
      suffix: '',
      replace: '',
      AND: 'and',
      options: {},
      callback: false
      
    });
  });
  
  
  //Limitar caracteres no input 
  function LimitarInput(string = "") {
    string.value = string.value.substring(0,19);
    }
</script>

Input 1

Aqui o que for digitado ele mostrar no input 2. Isso ja faz só a quantidade mesmo de caracteres que não esta sendo controlado..

<input type="text" class="basic-usage" name="nome">

Input 2

 

Aqui no input 2 se for digitado direto ele mantém apenas os 20 Caracteres se tentar digitar mais ele não aceita...


<input type="text" onkeyup="LimitarInput(this)"  class="basic-usage permalink" name="slug">

 

Então o que eu quero é o que for digitado no input 1 no input 2 não deixa passar da quantidade permitida..

 

 

Desde já agradeço 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente algo como isso....

<p>De qualquer forma os input só vão aceitar 20 caracters</p>
<input maxlength="20" type="text" class="basic-usage" name="input-a" />
<input maxlength="20" type="text" class="basic-usage" name="input-b" />

<script>
    // Armazenamos todos elementos, teremos que pecorrer eles 2 vezes
    var input = document.querySelectorAll('input');
    // Quantidade de caracteres atuais
    var total_de_caracteres = 0;
    // Total de caracteres que podem co-existir
    var caracteres_permitidos = 10; // De acordo com seu tópico aqui seria 20, deixamos em 10 para exemplo

    // Percorremos os elementos para adicionar o evento neles
    for (var i = 0; i < input.length; i++) {
        input[i].addEventListener('keyup', digitar, false);
    }

    // Função que é executada através do ouvinte de eventos keyup
    function digitar(e) {
        // Começamos definindo que o total de caracteres é do input alvo
        total_de_caracteres = this.value.length;
        // Percorrendo os elementos novamente então
        for (var j = 0; j < input.length; j++) {
            // Se a volta atual do loop não for o input alvo aumentamos
            // o total de caracteres inseridos com o valor dos demais
            // inputs que existirem
            if (input[j] !== this) {
                total_de_caracteres += input[j].value.length;
            }
        }
        // Então se o total for maior que o permitido
        // Redefinimos o valor do input alvo
        if (total_de_caracteres > caracteres_permitidos) {
            // Substituir tudo que é depois da quantidade permitida 
            this.value = this.value.substring(0, caracteres_permitidos);
        }
    }
</script>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 11/02/2023 at 04:39, Omar~ disse:

Tente algo como isso....


<p>De qualquer forma os input só vão aceitar 20 caracters</p>
<input maxlength="20" type="text" class="basic-usage" name="input-a" />
<input maxlength="20" type="text" class="basic-usage" name="input-b" />

<script>
    // Armazenamos todos elementos, teremos que pecorrer eles 2 vezes
    var input = document.querySelectorAll('input');
    // Quantidade de caracteres atuais
    var total_de_caracteres = 0;
    // Total de caracteres que podem co-existir
    var caracteres_permitidos = 10; // De acordo com seu tópico aqui seria 20, deixamos em 10 para exemplo

    // Percorremos os elementos para adicionar o evento neles
    for (var i = 0; i < input.length; i++) {
        input[i].addEventListener('keyup', digitar, false);
    }

    // Função que é executada através do ouvinte de eventos keyup
    function digitar(e) {
        // Começamos definindo que o total de caracteres é do input alvo
        total_de_caracteres = this.value.length;
        // Percorrendo os elementos novamente então
        for (var j = 0; j < input.length; j++) {
            // Se a volta atual do loop não for o input alvo aumentamos
            // o total de caracteres inseridos com o valor dos demais
            // inputs que existirem
            if (input[j] !== this) {
                total_de_caracteres += input[j].value.length;
            }
        }
        // Então se o total for maior que o permitido
        // Redefinimos o valor do input alvo
        if (total_de_caracteres > caracteres_permitidos) {
            // Substituir tudo que é depois da quantidade permitida 
            this.value = this.value.substring(0, caracteres_permitidos);
        }
    }
</script>

 

Ola omar obrigado pela ajuda...  vou fazer aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 11/02/2023 at 04:39, Omar~ disse:

Tente algo como isso....


<p>De qualquer forma os input só vão aceitar 20 caracters</p>
<input maxlength="20" type="text" class="basic-usage" name="input-a" />
<input maxlength="20" type="text" class="basic-usage" name="input-b" />

<script>
    // Armazenamos todos elementos, teremos que pecorrer eles 2 vezes
    var input = document.querySelectorAll('input');
    // Quantidade de caracteres atuais
    var total_de_caracteres = 0;
    // Total de caracteres que podem co-existir
    var caracteres_permitidos = 10; // De acordo com seu tópico aqui seria 20, deixamos em 10 para exemplo

    // Percorremos os elementos para adicionar o evento neles
    for (var i = 0; i < input.length; i++) {
        input[i].addEventListener('keyup', digitar, false);
    }

    // Função que é executada através do ouvinte de eventos keyup
    function digitar(e) {
        // Começamos definindo que o total de caracteres é do input alvo
        total_de_caracteres = this.value.length;
        // Percorrendo os elementos novamente então
        for (var j = 0; j < input.length; j++) {
            // Se a volta atual do loop não for o input alvo aumentamos
            // o total de caracteres inseridos com o valor dos demais
            // inputs que existirem
            if (input[j] !== this) {
                total_de_caracteres += input[j].value.length;
            }
        }
        // Então se o total for maior que o permitido
        // Redefinimos o valor do input alvo
        if (total_de_caracteres > caracteres_permitidos) {
            // Substituir tudo que é depois da quantidade permitida 
            this.value = this.value.substring(0, caracteres_permitidos);
        }
    }
</script>

 

Ola omar

 

Testei mais não funcionou como preciso, questão dos input é o seguinte 

Neste input 1 o que eu for digitar ele vai me mostrar no input 2 ate ai esta belaza pois estou usando este script que esta funcionando..


$(document).ready(function() {
    $(".basic-usage").stringToSlug({
      setEvents: 'keyup keydown blur',
      getPut: '.permalink',
      space: '-',
      prefix: '',
      suffix: '',
      replace: '',
      AND: 'and',
      options: {},
      callback: false
      
    });
  });

Agora se eu for digitar o texto direto no input dois ele funciona o limitador entende??

 

Porem preciso mesmo sendo digitado no input 1 o texto que vai aparecer  dentro do input 2 quando chegar estes 20 caracteres o input 2 não permite mais caracteres nele entende...

 

Foi onde fiz este script que não quer dar certo 

 

function LimitarInput(string ="") {
   string.value = string.value.substring(0,19);
}

Sendo que o que for digitado no input 1 exemplo 

 

<input class="basic-usage" name="nome" value="Limitar caracteres dentro do input 2">

<input  onkeyup="LimitarInput(this)" class="basic-usage permalink" maxlength="20" name="slug" value="limitar-caracteres-dentro-do">

E mesmo que eu coloque maxlength="20"

Ele só vai limitar se eu digitar dentro do input2

Entende agora??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para começar jogue fora essa coisa aí que chama de script que insiste em usar.

 

Então tá, mesmo a lógica não tendo nada haver, e o objetivo disso ser controverso....

Digitei no primeiro input, o que eu digitar substitui o valor no segundo input, mas o segundo input só pode ter no máximo 20 caracteres (está aqui a falta de lógica).

<input name="exemplo[]" /> <!-- input[0] -->
<input name="exemplo[]" data-recebe="" /> <!-- input[1] -->

<script>
    var input = document.getElementsByName('exemplo[]'),
        inputAlvo = {};

    input[0].addEventListener('keyup', digitar, false);
    input[1].addEventListener('keyup', digitar, false);

    function digitar(evento) {
        inputAlvo = evento.target;
        if (inputAlvo.dataset.recebe === '') {
            input[1].value = input[(input[0].value.length >= 1 ? 0 : 1)].value.substring(0, 20);
        } else {
            input[1].dispatchEvent(new Event('keyup'));
        }
    }
</script>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por ILR master
      Pessoal, pergunta bem simples. Abaixo tenho o seguinte código:
       
      <script>
      function alerta()
      {
        if (window.confirm("Você realmente quer sair?")) {
          window.open("sair.html");
      }
      }
      </script>
       
      Funciona perfeitamente, só que está abrindo em outra janela e quero que abra na mesma janela.
       
      Alguém pode me ajudar?
    • Por Giovanird
      Olá a todos!
      Tenho uma pagina que possui uma DIV onde coloquei uma pagina PHP.
      Uso a função setInterval para atualizar a pagina inclusa dentro da DIV.
      O problema é que ao acessar o site , a DIV só me mostra a pagina inclusa somente quando completo o primeiro minuto.
      Preciso que a pagina inclusa já inicie carregada
       
      Meu código JavaScript e a DIV com a pagina PHP
       
      <script> function atualiza(){ var url = 'direita.php'; $.get(url, function(dataReturn) { $('#direita').html(dataReturn); }); } setInterval("atualiza()",60000); </script> <div> <span id="direita"></span> </div>  
    • Por Thiago Duarte
      Oi, gostaria de arrastar imagem e ao soltar formar bloco html, meu bloco de html ficaria com nome, content-1.html, content-2.html, etc
       
      Alguem pode me ajudar?
    • Por juliosonic
      Boa noite..
      Estou desenvolvendo um site de https://www.maithunatantra.com.br/ e estou com um duvida sobre o menu de navegação da versão mobile.
      O menu que tem o dropdown "Terapeutas" e "Terapias" quando clico em cima ele expande como deve ser, mas quando clico denovo para recolher os submenus
      nao acontece nada.. segue o trecho do codigo do menu..
      <div class="collapse navbar-collapse" id="navbarsExample09">             <ul class="navbar-nav ml-auto">               <li class="nav-item  active"><a class="nav-link" href="index.html">Home</a></li>               <li class="nav-item  active"><a class="nav-link" href="about-us.html">Quem Somos</a></li>               <li class="nav-item dropdown1">                     <a class="nav-link dropdown-toggle" data-toggle="dropdown1" href="#">Terapeutas</a>                     <ul class="dropdown-menu">                         <li><a class="dropdown-item" href="terapeuta-julio-cezar.html">Julio Cezar</a></li>                         <li><a class="dropdown-item" href="terapeuta-pamela-priscila.html">Pamela Priscila</a></li>                     </ul>                                    </li>               <li class="nav-item dropdown">                     <a class="nav-link dropdown-toggle" data-toggle="dropdown1" href="#">Terapias</a>                     <ul class="dropdown-menu" aria-labelledby="dropdown01">                         <li><a class="dropdown-item" href="o-que-e-reiki.html">O que é Reiki</a></li>                         <li><a class="dropdown-item" href="beneficios-reiki.html">Benefícios do Reiki</a></li>                         <li><a class="dropdown-item" href="principios-reiki.html">Princípios do Reiki</a></li>                         <li><a class="dropdown-item" href="animais-reiki.html">Reiki em Animais</a></li>                         <li><a class="dropdown-item" href="animais-reiki.html">Estudos Sobre Reiki</a></li>                         <li><a class="dropdown-item" href="terapia-massagem-tantrica.html">Terapia Tântrica</a></li>                     </ul>               </li>               <li class="nav-item  active"><a class="nav-link" href="blog.html">Blog</a></li>                <li class="nav-item"><a class="nav-link" href="contato.html">Contato</a></li>             </ul>         </div>  
      Massagem Tantrica em Curitiba
      Tantra Curitiba
      Massagem Tântrica
      Tantra
      Julio Darshan

      Obrigado
      Att
      Julio Cezar
       
       
       
    • Por belann
      Olá!
       
      Estou fazendo o upload de arquivos com fetch dessa forma
      fetch(url, {
              method: 'POST',
              headers: {'Content-Type': 'multipart/form-data',},
              body: formData 
          }).catch((error) => (console.log("Problemas com o Upload"), error));
       
      estou usando input type=file
      e criando uma const formData = new FormData(); 
      mas não faz e não dá nenhum erro.
      estou fazendo o upload com a url="http://localhost/dashboard/dados".
×

Informação importante

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