Ir para conteúdo

POWERED BY:

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 violin101
      Caros amigos, saudações.

      Estou com uma dúvida, referente cálculo de valores em tempo real.

      Tenho uma rotina, que faz o cálculo, o problema é mostrar o resultado.

      Quero mostrar o RESULTADO assim: 0,00  ou  0.00

      Abaixo posto o código.
      jQuery('input').on('keyup',function(){ //Remover ponto e trocar a virgula por ponto var m = document.getElementById("pgRest").value; while (m.indexOf(".") >= 0) { m = m.replace(".", ""); } m = m.replace(",","."); //Remover ponto e trocar a virgula por ponto var j = document.getElementById("pgDsct").value; while (j.indexOf(".") >= 0) { j = j.replace(".", ""); } j = j.replace(",","."); m = parseFloat(jQuery('#pgRest').val() != '' ? jQuery('#pgRest').val() : 0); j = parseFloat(jQuery('#pgDsct').val() != '' ? jQuery('#pgDsct').val() : 0); //Mostra o Resultado em Tempo Real jQuery('#pgTroco').val(m - j); <<=== aqui estou errando })  
       
      Grato,
       
      Cesar
       
       
    • Por violin101
      Caro amigos, saudações.

      Tenho uma tabela escrita em JS que funciona corretamente.
       
      Minha dúvida:
      - como devo fazer para quando a Tabela HTML estiver vazia, exibir o LOGO da Empresa ?

      Abaixo posto o script:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'i' ) return;// Não é Ctrl+A, portanto interrompemos o script evt.preventDefault(); //Chama a Função Calcular Qtde X Valor Venda calcvda(); var idProdutos = document.getElementById("idProdutos").value; var descricao = document.getElementById("descricao").value; var prd_unid = document.getElementById("prd_unid").value; var estoque_atual = document.getElementById("estoque_atual").value; var qtde = document.getElementById("qtde").value; var vlrunit = document.getElementById("vlrunit").value; var vlrtotals = document.getElementById("vlrtotal").value; var vlrtotal = vlrtotals.toLocaleString('pt-br', {minimumFractionDigits: 2}); if(validarConsumo(estoque_atual)){ //Chama a Modal com Alerta. $("#modal_qtdemaior").modal(); } else { if(qtde == "" || vlrunit == "" || vlrtotal == ""){ //Chama a Modal com Alerta. $("#modal_quantidade").modal(); } else { //Monta a Tabela com os Itens html = "<tr style='font-size:13px;'>"; html += "<td width='10%' height='10' style='text-align:center;'>"+ "<input type='hidden' name='id_prds[]' value='"+idProdutos+"'>"+idProdutos+"</td>"; html += "<td width='47%' height='10'>"+ "<input type='hidden' name='descricao[]' value='"+descricao+"'>"+descricao+ "<input type='hidden' name='esp[]' value='"+prd_unid+"'> - ESP:"+prd_unid+ "<input type='hidden' name='estoq[]' value='"+estoque_atual+"'></td>"; html += "<td width='10%' height='10' style='text-align:center;'>"+ "<input type='hidden' name='qtde[]' value='"+qtde+"'>"+qtde+"</td>"; html += "<td width='12%' height='10' style='text-align:right;'>"+ "<input type='hidden' name='vlrunit[]' value='"+vlrunit+"'>"+vlrunit+"</td>"; html += "<td width='14%' height='10' style='text-align:right;'>"+ "<input type='hidden' name='vlrtotal[]' value='"+vlrtotal+"'>"+vlrtotal+"</td>"; html += "<td width='12%' height='10' style='text-align:center;'>"+ "<button type='button' class='btn btn-uvas btn-remove-produto' style='margin-right:1%; padding:1px 3px; font-size:12px;' title='Remover Item da Lista'>"+ "<span class='fa fa-minus' style='font-size:12px;'></span></button></td>"; html += "</tr>"; $("#tbventas tbody").append(html); //Função para Somar os Itens do Lançamento somar(); $("#idProdutos").val(null); $("#descricao").val(null); $("#prd_unid").val(null); $("#qtde").val(null); $("#vlrunit").val(null); $("#vlrtotal").val(null); $("#idProdutos").focus(); //Se INCLUIR NOVO produto - Limpa a Forma de Pagamento $("#pgSoma").val(null); $("#pgRest").val(null); $("#pgDsct").val(null); $("#pgTroco").val(null); $("#tbpagar tbody").empty(); }//Fim do IF-qtde }//Fim do Validar Consumo });//Fim da Função btn-agregar  
      Grato,

      Cesar
       
    • Por violin101
      Caros amigos, saudações.

      Estou com uma pequena dúvida se é possível ser realizado.

      Preciso passar 2 IDs para o Sistema executar a função, estou utilizando desta forma e gostaria de saber como faço via JS para passar os parâmetro que preciso.

      Observação:
      Dentro da TABELA utilizei 2 Forms, para passar os IDS que preciso, funcionou conforme código abaixo.
      <div class="card-body"> <table id="tab_clie" class="table table-bordered table-hover"> <thead> <tr> <th style="text-align:center; width:10%;">Pedido Nº</th> <th style="text-align:center; width:10%;">Data Pedido</th> <th style="text-align:center; width:32%;">Fornecedor</th> <th style="text-align:center; width:10%;">Status</th> <th style="text-align:center; width:5%;">Ação</th> </tr> </thead> <tbody> <?php foreach ($results as $r) { $dta_ped = date(('d/m/Y'), strtotime($r->dataPedido)); switch ($r->pd_status) { case '1': $status = '&nbsp;&nbsp;Aberto&nbsp;&nbsp;'; $txt = '#FFFFFF'; //Cor: Branco $cor = '#000000'; //Cor: Preta break; case '2': $status = 'Atendido Total'; $txt = '#FFFFFF'; //Cor: Branco $cor = '#086108'; //Cor: Verde break; case '3': $status = 'Atendido Parcial'; $txt = '#000000'; //Cor: Branco $cor = '#FEA118'; //Cor: Amarelo break; default: $status = 'Cancelado'; $txt = '#FFFFFF'; //Cor: Branco $cor = '#D20101'; //Cor: Vermelho break; } echo '<tr>'; echo '<td width="10%" height="10" style="text-align:center;">'.$r->pd_numero.'</td>'; echo '<td width="10%" height="10" style="text-align:center;">'.$dta_ped.'</td>'; echo '<td width="32%" height="10" style="text-align:left;">'.$r->nome.'</td>'; echo '<td width="10%" height="10" style="text-align:left;"><span class="badge" style="color:'.$txt.'; background-color:'.$cor.'; border-color:'.$cor.'">'.$status.'</span></td>'; echo '<td width="5%" style="text-align:center;">'; ?> <div class="row"> <?php if($this->permission->checkPermission($this->session->userdata('permissao'), 'vPedido')){ ?> <form action="<?= base_url() ?>compras/pedidos/visualizar" method="POST" > <input type="hidden" name="idPedido" value="<?php echo $r->idPedidos; ?>"> <input type="hidden" name="nrPedido" value="<?php echo $r->pd_numero; ?>"> <button class="btn btn-warning" title="Visualizar" style="margin-left:50%; padding: 1px 3px;"><i class="fa fa-search icon-white"></i></button> </form> <?php } if($this->permission->checkPermission($this->session->userdata('permissao'), 'ePedido')){ ?> <form action="<?= base_url() ?>compras/pedidos/editar" method="POST" > <input type="hidden" name="idPedido" value="<?php echo $r->idPedidos; ?>"> <input type="hidden" name="nrPedido" value="<?php echo $r->pd_numero; ?>"> <button class="btn btn-primary" title="Editar" style="margin-left:50%; padding: 1px 3px;"><i class="fa fa-edit icon-white"></i></button> </form> <?php } ?> </div> <?php echo '</td>'; echo '</tr>'; } ?> </tbody> </table> </div>
      Grato,

      Cesar.
    • Por belann
      Olá!
       
      Estou usando o editor quill em uma página html, sem fazer a instalação com npm, mas usando as api´s via internet com http, no entanto não consigo fazer a tecla enter funcionar para mudança de linha, tentei essa configuração abaixo, mas não funcionou.
       
      modules: {       syntax: true,       toolbar: '#toolbar-container',       keyboard: {         bindings: {           enter: {             key: 13,             handler: function(range, context) {                       quill.formatLine(range.index, range.length, { 'align': '' });             }           }  
       
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de poder tirar uma dúvida com os amigos.
       
      Como faço uma função para Comparar a Data Digitada pelo o Usuário com a Data Atual ?

      Data Digitada:  01/09/2024
       
      Exemplo:
      25/09/2024 é menor que DATA Atual  ====> mensagem: informe uma data válida.
      25/09/2024 é igual DATA Atual ===> o sistema libera os INPUT's.
       
      Como faço uma comparação com a Data Atual, para não Deixar Gravar Data retroativa a data Atual.
       
      Grato,
       
      Cesar
×

Informação importante

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