Ir para conteúdo

Arquivado

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

  • 0
dmelo

AutoClick somente em class dentro de class

Pergunta

Gostaria de realizar um autoclick sequenciado em apenas um link por por vez e somente na class="mobile" que tiver uma class="check-handler". Agradeço a quem me ajudar pois já tentei vários scripts mas até agora nada.

(A)<div class="clicked mobile" id="container">
   <div class="check-handler" data-id="000" data-url="http://www.xxx.com">    

(B)<div class="mobile" id="container">                                   
   <div class="check-handler" data-id="111" data-url="http://www.mmm.com">

(C)<div class="mobile" id="container">                                   
   <div class="check-handler" data-id="222" data-url="http://www.uuu.com">

if ($('.mobile #container .check-handler').is(':visible')) 
    setTimeout(function(){$('.mobile #container .check-handler').click();},5000);

Compartilhar este post


Link para o post
Compartilhar em outros sites

17 respostas a esta questão

Recommended Posts

@Maujor e @Omar~

Quando estava preste a desistir, devido a minha incapacidade de ser claro nas palavras e muito triste por ter ocupado vocês em me ajudar sem ter alcançado o meu objetivo, resolvi tentar entender o código de vocês que não funcionava do jeito que eu desejei, foi que consegui finalmente!

Muito, muito obrigado pela ajuda que depois de muito trabalho vocês me deram. Deixo abaixo o código que  resolve 100% o problema proposto pelo título desse tópico.

 

$(document).ready(function() {
setTimeout(function () {
$('#ad-container:not(._clicked.m-portlet.m-portlet--mobile) .m-portlet__head.bot-check-handler').click();
}, 3000);
});

 

OBS: Espero contar com vocês no futuro próximo pois tenho várias dúvidas que em breve irei postar aqui no site.

Parabéns pelo conhecimento admirável que vocês possuem!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Explique o que você está tentando fazer.
1-) No seu seu código HTML tem 3 valores iguais para ID  (em HTML não é permitido repetir um valor de ID na página)

2-) Nenhum dos três containeres está com tag de fechamento.
3-) O código JS indica que você está usando jQuery. Qual a versão?

4-) O auto click fará o que? Vai para o URL em data-url?

5-) O método setTimeout checa de 5s em 5s se há uma das 3 opções visíveis e se sim executa o auto click?

 

É preciso que você esclareça o escopo da sua dúvida, caso contrário não há como ajudar.

NOTA: Não precisa "citar" meu post para responder, basta começar sua resposta com @Maujor

 
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Maujor

Depois de anos fazendo perguntas na internet essa é a primeira vez que encontro uma pessoa parecida comigo, ou seja, metódica.

Estou muito feliz pela sua resposta rápida e suas dúvidas, então vamos lá:

1-) No seu seu código HTML tem 3 valores iguais para ID  (em HTML não é permitido repetir um valor de ID na página)

R= Vou colocar o código original abaixo.

 

2-) Nenhum dos três containeres está com tag de fechamento.

R= Vou colocar o código original abaixo.

 

3-) O código JS indica que você está usando jQuery. Qual a versão?

R= Isso eu não sei.

 

4-) O auto click fará o que? Vai para o URL em data-url?

R= Sim, vai para o URL em data-url em uma nova aba.

 

5-) O método setTimeout checa de 5s em 5s se há uma das 3 opções visíveis e se sim executa o auto click?

R= Ele checa de 5s em 5s se há uma opção correta das opções visíveis e se sim executa o auto click em apenas uma de cada vez.

 

 

Código Original "A"

<div class="col-md-3 boxed-ads ad-category-45">

<div class="_clicked m-portlet m-portlet--mobile" id="ad-container">

<div class="m-portlet__head bot-check-handler" data-ad-id="386" data-url="http://www.xxx.com">
<div class="m-portlet__head-caption">

<div class="m-portlet__head-title">

<h3 class="m-portlet__head-text">3rd Referral Contest</h3>

</div></div></div>
<div class="m-portlet__body">Win the first prize of 0.20 </div>
<div class="m-portlet__foot">

<div class="row">

<div class="col-6">
<i class="la la-clock-o" style="position: relative; top: 1px;"></i> 45</div><div class="col-6 text-right">
<span class="convertable-balance _satoshi" data-amount="22.5" data-actual-amount="2.25E-7">22.5</span>
</div></div></div></div></div>

 

Código Original "B"

<div class="col-md-3 boxed-ads ad-category-45">

<div class="m-portlet m-portlet--mobile" id="ad-container">

<div class="m-portlet__head bot-check-handler" data-ad-id="386" data-url="http://www.xxx.com">
<div class="m-portlet__head-caption">

<div class="m-portlet__head-title">

<h3 class="m-portlet__head-text">3rd Referral Contest</h3>

</div></div></div>
<div class="m-portlet__body">Win the first prize of 0.20 </div>
<div class="m-portlet__foot">

<div class="row">

<div class="col-6">
<i class="la la-clock-o" style="position: relative; top: 1px;"></i> 45</div><div class="col-6 text-right">
<span class="convertable-balance _satoshi" data-amount="22.5" data-actual-amount="2.25E-7">22.5</span>
</div></div></div></div></div>

 

 

OBS: Na página existe vários blocos mas eu preciso de um autoclick somente no bloco igual a opção "B".

Compartilhar este post


Link para o post
Compartilhar em outros sites

@dmelo
Lamentavelmente é impossível reproduzir seu layout localmente para analisar, pois o trecho de código

que você postou não faz sentido.
Você está usando Bootstrap e esse frramework tem uma estrutura de rows e cols que está incompleta no 

código enviado.
Começa com col-md-3 sem row, segue com row e col-6 que não existe em Bootstrap e por aí vai.
Você está tentando adaptar algo pronto?
O ideal seria ter a página online uma vez que não dá para reproduzir localmente.

 

5 horas atrás, dmelo disse:

OBS: Na página existe vários blocos mas eu preciso de um autoclick somente no bloco igual a opção "B".

Afinal o autoclick será no bloco vísivel ou somente no bloco igual a opção "B".

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Maujor

Sim, estou tentando criar um autoclick em um site que está pronto.

O autoclick será no bloco visível igual a opção "B".

 

Meu pensamento é: Seria possível criar um código que funcionasse o autoclick somente se a class=x estivesse abaixo da class=y?

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, dmelo disse:

Meu pensamento é: Seria possível criar um código que funcionasse o autoclick somente se a class=x estivesse abaixo da class=y?

Então vamos lá.
O que significa "class=x abaixo da class=y". Seria elemento com a classe=x logo após o elemento com a class=y na HTML?
Na opção "B", qual seria a classe x e a classe y?

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Maujor

Ok, direto ao ponto:

Autoclick na 

class="m-portlet__head bot-check-handler"

que está abaixo da 

class="m-portlet m-portlet--mobile" id="ad-container">

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim:
Coloque esse código antes da tag de fechamento de BODY

<script>
if ($('#ad-container').is(':visible')) 
    setTimeout(function() {
      var destino = $('#ad-container .bot-check-handler').attr('data-url');
      window.location.href = destino;		
		},5000);
</script>
</body>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro e é minha opinião: Redirecionar ou forçar um visitante do website a ser redirecionado para um pagina sem o consentimento dele é completamente grotesco.

 

Como o Maujor já mencionou que não deu para "sacar" o que de fato quer fazer, nem o que apresentou como HTML dar a se ter uma ideia do que fazer, também fiquei perdido como responder a isso.

 

Agora, você diz que tem que ser um redirecionamento de cada vez. Pois bem, mas se você está a redirecionar então está a não utilizar mais os scripts da página anterior, por isso não dar para redirecionar com um suposto link 1 e depois de um certo tempo o link 2 por exemplo. Pelo menos não só com jQuery, seria necessário utilizar e capturar valores como GET, SESSION COOKIE etc...

 

Outro fato é que fiquei curioso do porque utilizar um elemento div para pegar um valor de url? Pois esse valor poderia já ser definido dentro do script, assim sendo não é necessário acessar o html para obter esses dados.

 

De qualquer forma pelo que entendi fiz assim:

Fazendo uma busca pelo elemento div.mobile se ele existir e dentro desse elemento deve existir também um elemento div.check-handler, assim sendo capturo o o valor de data-url de check-handler, logo então o script aguarda 3 segundos e redireciona para o valor obtido.

Veja o exemplo:

Spoiler

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <script src="jquery-3.2.1.min.js" type="text/javascript"></script>
        <title>Exemplo</title>
        <script type="text/javascript">
            $(document).ready(function () {
                $('.mobile').each(function () {
                    if ($(this).find('.check-handler')) {
                        var redirecionar = $(this).children('.check-handler').attr('data-url');

                        setTimeout(function () {
                            window.location.href = redirecionar;
                        }, 3000);

                    }
                });
            });

        </script>
    </head>
    <body>

        <div class="clicked mobile">
            <div class="check-handler" data-id="000" data-url="http://www.xxx.com"></div>
        </div>

        <div class="mobile">                                   
            <div class="check-handler" data-id="111" data-url="http://www.mmm.com"></div>
        </div>

        <!-- Ter isso aqui já está errado pois haverá conflito porque os valores dos elementos são idênticos
        <div class="mobile">                                   
            <div class="check-handler" data-id="222" data-url="http://www.uuu.com"></div>
        </div>
        -->

    </body>
</html>

 

 

Não sei se ficou bom porque meu negócio é javascript puro. Mas enfim....

Note que a forma de busca é baseada em elemento class, o que não é muito interessante, pois assim como no exemplo que mostrei a repetição dos mesmos elementos "class", que talvez possa causar uma anomalia no comportamento do script. O ideal é (Se o elemento possui a url de redirecionamento esse deveria ser um elemento id#ID) o mesmo como sendo único não se repetindo.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Maujor

Muito obrigado mas o seu código é parecido com o meu, ou seja, o problema continua. 

Vou tentar mais uma vez explicar porém com outras palavras.

Na página tem vários links, quando clico no primeiro é aberto esse link em uma nova aba, e o link que já cliquei continua disponível mas com a "class" mudada. Então desejo que todos os links que ainda não foram clicados, sejam clicados em um intervalo aleatório de tempo, assim sendo rejeitando os links que já foram clicados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Omar~

Muito obrigado pela sua resposta. Teria como você alterar seu código para que ao inves de pegar a url e abrir na mesma janela, ele simplesmente clicar na url? 

OBS: O que eu desejo é o seguinte: Na página tem vários links, quando clico no primeiro é aberto esse link em uma nova aba, e o link que já cliquei continua disponível mas com a "class" mudada. Então desejo que todos os links que ainda não foram clicados, sejam clicados em um intervalo aleatório de tempo, assim sendo rejeitando os links que já foram clicados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@dmelo

A maior dificuldade é entender o que você pretende, pois as informações são contraditórias e confusas,

contudo no seu último post vocês descreveu o que quer. Antes de eu codificar aqui a solução esclareça

se está correto o seguinte:
O clique em um link qualquer da página abre o link em nova aba do navegador e automaticamente as
demais URL são abertas em novas abas. Permanecendo aberta a aba com a página inicial com os links
disponíveis e com a classe mudada e as abas com os demais links.

Por que você quer que "sejam clicados em um intervalo aleatório de tempo". Pode ser imediatamente um após o outro?   

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Maujor

Puxa! Você está quase lá...

1) O clique não é em um link qualquer da página e sim no link com uma class específica. Embora a página tenha vários links com a mesma class, quando ainda não são clicados.

2) Sim, pode ser um após o outro.

3) Seria possível o seu código ao invés de pegar a URL ele simplesmente clicar nela? Penso que seria mais fácil. 

Compartilhar este post


Link para o post
Compartilhar em outros sites
29 minutos atrás, dmelo disse:

3) Seria possível o seu código ao invés de pegar a URL ele simplesmente clicar nela? Penso que seria mais fácil. 

Para simplesmente clicar nela é preciso que haja um link na página apontando para o URL, mas no seu código HTML o URL é o valor do atributo data-url. Coloque o link no código que aí sim fica mais fácil

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

 

 

@dmelo

Desenvolvi uma página, com cinco links e com o efeito que você quer criar.
HTML:

<div class="mobile">
  <div class="check-handler" data-url="http://www.maujor.com">Maujor</div>
</div>

<div class="mobile">
  <div class="check-handler" data-url="http://www.livrosdomaujor.com.br">Livros do Maujor</div>
</div>

<div class="mobile">
  <div class="check-handler" data-url="http://www.google.com">Google</div>
</div>

<div class="mobile">
  <div class="check-handler" data-url="http://www.w3.org">W3C</div>
</div>

<div class="mobile">
  <div class="check-handler" data-url="http://uol.com.br">UOL</div>
</div>

jQuery:

<script src="https://code.jquery.com/jquery-3.0.0.min.js"></script>
  
<script>
var $urlArray = []; // array com as URL a abrir automaticamente
$('.mobile').on('click', function() { 
  $(this).addClass('clicked'); // adiciona a classe 'clicked' no URL clicado
  urlClicada = $(this).find('.check-handler').attr('data-url');  // armazena o URL clicado 
$('.mobile:not(.clicked) .check-handler').each(function(i, el) {  // loop pelos URL não clicados
  $urlArray.push(  $(this).attr('data-url') ); // array com URL's não clicadas a abrir automaticamente
  window.open($urlArray[i], '_blank'); // abre os URL não clicados, em abas	   
});
  window.open(urlClicada, '_blank');  // abre o URL clicado, em aba		   
  $('.mobile:not(.clicked)').addClass('clicked');  // adiciona a classe 'clicked' nos URL não clicados
});
</script>  
</body>

A página está online em http://clickmaujor.com/foruns/abas.html

ATENÇÃO: Abrir abas no navegador do usuário om uso de programação não é uma boa prática. Os navegadores bloqueiam
janelas popup e é necessário que o usuário autorize a abertura. Na página que criei o Chrome e o Internet Explore não abrem as abas para os links não clicados. O Firefox abre.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ta aqui. De acordo com o que disse por último.

Como disse meu negócio é javascript, então não usei jquery.

O Maujor já disse sobre a abertura de novas janelas sem o consentimento do usuário.

Além disso ao fazer o teste aqui meu software anti-virus (Kaspersky) bloqueou a execução de script da página de teste, pois como dito forçar um usuário a ser redirecionado a um local sem o consentimento/conhecimento dele não só é uma má prática como também fere as normas de segurança da web

 

Spoiler

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Exemplo</title>
        <script>
            
            /**
             * Classe javascript para executar
             */
            
            var ObjJS = function () {

                // Pego todos os elementos que tenham a class.botao
                var $btns = document.getElementsByClassName('botao');

                // Pego a quantidade de elementos botão
                var $quant = $btns.length;

                // Variável usada para executar o loop
                var $i;

                // Contagem dos elementos
                var $j = 0;

                // Quando carregado a página já iniciar a função
                // de contagem de tempo
                autoOpen();
                
                
                /** 
                 * Essa parte refere-se a quando um usuário vem a clicar nos links
                 */

                // Pecorro todos os elementos botao já capturados e adiciono evento click neles
                for ($i = 0; $i < $quant; $i++) {
                    $btns[$i].addEventListener('click', function (event) {
                        // Remove o comportamento padrão do link.
                        // Isso fará com que o navegador só execute a função
                        // ao invés de abrir o link
                        // Se remover isso o comportamento do navegador volta ao normal
                        event.preventDefault();

                        // Executo função enviando o botão clicado
                        openLink(event.target);

                        return false;
                    });
                }

                /**
                 * Essa função é que manipula os elementos e abre
                 * os links em nova janela.
                 * Se os por acaso algum botão já foi ativado ele é ignorado
                 */
                function openLink(evt) {
                    // Chamo a função que conta o tempo
                    // somente se todos os links ainda não foram acionados
                    if ($j !== $quant) {
                        autoOpen();
                        $j++;
                    }

                    // Fazer uma segunda checagem pela class do elemento
                    // Se o mesmo já foi clicado não executar novamente
                    if (evt.className !== 'botao desativado') {

                        // Abro em nova janela a url
                        window.open(evt.href, '_blank');


                        // Altero a propiedade class para ".botao .desativado"
                        // fazendo com que o botão não seja ativo novamente
                        evt.className += ' desativado';
                    }

                    return false;
                }

                /**
                 * Essa função faz a contagem o tempo para abrir os links
                 * enviando os botões para a outra função
                 */
                function autoOpen() {
                    setTimeout(function () {
                        openLink($btns[$j]);
                    }, 2000);
                }

            };
        </script>
    </head>
    <body>
        <a href="https://www.google.com/"class="botao" title="exemplo 1">Link 1</a>
        <a href="https://forum.imasters.com.br/"class="botao" title="exemplo 2">Link 2</a>
        <a href="https://forum.imasters.com.br/forum/6-javascript/"class="botao" title="exemplo 3">Link 3</a>
        <a href="https://forum.imasters.com.br/topic/565974-autoclick-somente-em-class-dentro-de-class/"class="botao" title="exemplo 4">Link 4</a>

        <script>
            var link = new ObjJS(); // Instancia a classe Javascript
        </script>


    </body>
</html>

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

2 horas atrás, Omar~ disse:

Como disse meu negócio é javascript, então não usei jquery.

Nesse caso usar jQuery é indicado porque o template HTML é com o framework Bootstrap e consequentemente a biblioteca jQuery já está na página.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • 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 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".
    • Por joeythai
      Boa tarde pessoal,
       
      Eu criei um formulário em que tenho 3 interações: evento click, change e uma chamada ajax. No evento on change ("select#removal_table_from" )eu faço uma chamada ajax onde eu passo como parametro o id do item selecionado e construo uma tabela dinamica com o próprio javascript, após isto, tenho um input em que o usuario coloca um valor de percentual para que eu possa preencher em 3 colunas da tabela que foi criada dinamicamente: moto_atualizado, carro_atualizado e caminhao_atualizado, até aí tudo bem, o codigo está fazendo isso, porém, como a tabela é criada dinamicamente eu preciso de alguma forma enviar o arrayData para meu backend mas quando faço o calculo dentro do loop apos resposta do meu ajax, os valores desses 3 campos chegam como null, não sei se é possível fazer o que pretendo ou se é ainda não sei como faz
       
      <code>
           $(document).ready(function (event) {   let arrayData = []; let percentage; let removal_vehicle; let removal_motorcycle; let removal_tuck; let apply_removal = $('#apply_removal');   // apply_removal.on('click', function () { // percentage = $('#percentage').val();   // $('.table-body tr').each(function () {   // let veiculo = $(this).find('.veiculo').text(); // let moto = $(this).find('.moto').text(); // let caminhao = $(this).find('.caminhao').text();   // let removal_vehicle = parseFloat(veiculo) + (parseFloat(veiculo) * parseFloat(percentage)) / 100; // let removal_motorcycle = parseFloat(moto) + (parseFloat(moto) * parseFloat(percentage)) / 100; // let removal_tuck = parseFloat(caminhao) + (parseFloat(caminhao) * parseFloat(percentage)) / 100;   // arrayData.push({ // removal_vehicle, // removal_motorcycle, // removal_tuck // })   // $(this).find('.veiculo_atualizado').val(removal_vehicle.toFixed(2)); // $(this).find('.moto_atualizado').val(removal_motorcycle.toFixed(2)); // $(this).find('.caminhao_atualizado').val(removal_tuck.toFixed(2)); // }); // });   apply_removal.on('click', function () { percentage = $('#percentage').val();   $('.table-body tr').each(function () {   let veiculo = $(this).find('.veiculo').text(); let moto = $(this).find('.moto').text(); let caminhao = $(this).find('.caminhao').text();   removal_vehicle = parseFloat(veiculo) + (parseFloat(veiculo) * parseFloat(percentage)) / 100; removal_motorcycle = parseFloat(moto) + (parseFloat(moto) * parseFloat(percentage)) / 100; removal_tuck = parseFloat(caminhao) + (parseFloat(caminhao) * parseFloat(percentage)) / 100;   arrayData.push({ removal_vehicle, removal_motorcycle, removal_tuck })   $(this).find('.veiculo_atualizado').val(removal_vehicle.toFixed(2)); $(this).find('.moto_atualizado').val(removal_motorcycle.toFixed(2)); $(this).find('.caminhao_atualizado').val(removal_tuck.toFixed(2));     console.log('Removal Vehicle:', removal_vehicle); console.log('Removal Motorcycle:', removal_motorcycle); console.log('Removal Truck:', removal_tuck); }); });   $('select#removal_table_from').on('change', function (e) { let table_id = $(this).val(); let action = route('removal.removal-values.show', table_id);   $.ajax({ type: "GET", url: action, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },   success: function (data) { $('.table-body').empty();   for (let i = 0; i < data.length; i++) { let carro = parseFloat(data[i].CARRO); let moto = parseFloat(data[i].MOTO); let caminhao = parseFloat(data[i].CAMINHAO); let distancia = data[i].DISTANCIA; let origem = data[i].ORIGEM; let destino = data[i].DESTINO; let localidadeOrigem = data[i].LocalidadeOrigem_ID; let localidadeDestino = data[i].LocalidadeDestino_ID;   let newRow = '<tr class="removal-row">' + '<td class="align-middle">' + '<div class="row">' + '<div class="col-1">' + '<span class="font-weight-bold">Origem</span><br>' + '<span class="origem">' + origem + '</span>' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Destino</span><br>' + '<span class="destino">' + destino + '</span>' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">KM</span><br>' + '<span class="km">' + distancia + '</span>' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Veículo</span><br>' + '<span class="veiculo">' + carro + '</span>' + '</div>' + '<div class="col-2">' + '<span class="font-weight-bold">Veículo Atualizado</span><br>' + '<input type="text" class="veiculo_atualizado">' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Moto</span><br>' + '<span class="moto">' + moto + '</span>' + '</div>' + '<div class="col-2">' + '<span class="font-weight-bold">Moto Atualizado</span><br>' + '<input type="text" class="moto_atualizado">' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Caminhão</span><br>' + '<span class="caminhao">' + caminhao + '</span>' + '</div>' + '<div class="col-2">' + '<span class="font-weight-bold">Caminhão Atualizado</span><br>' + '<input type="text" class="caminhao_atualizado">' + '</div>' + '</div>' + '</div>' + '</td>' + '</tr>';   $('.table-body').append(newRow); //let row = $('.removal-row:last');   // Calcula o valor atualizado e define nos campos diretamente // let veiculo_atualizado = carro + (carro * percentage) / 100; // let moto_atualizado = moto + (moto * percentage) / 100; // let caminhao_atualizado = caminhao + (caminhao * percentage) / 100; // console.log('PORCENTS: ', percentage); //console.log('Veiculo Atualizado:', veiculo_atualizado, 'Moto Atualizado:', moto_atualizado, 'Caminhao Atualizado:', caminhao_atualizado);   // Define os valores diretamente nos campos da nova linha // row.find('.veiculo_atualizado').val(veiculo_atualizado.toFixed(2)); // row.find('.moto_atualizado').val(moto_atualizado.toFixed(2)); // row.find('.caminhao_atualizado').val(caminhao_atualizado.toFixed(2));   arrayData.push({ carro, moto, caminhao, distancia, origem, destino, localidadeOrigem, localidadeDestino, removal_vehicle, removal_motorcycle, removal_tuck }); }   $('#copy_data_table').val(JSON.stringify(arrayData)); }   }); });   //javascript para o formulario de cadastro // $(document).ready(function (event) { $('#uf').change(function () { let code_city = $(this).val(); let deposit = localStorage.getItem('selected_deposit_id'); let action = route('removal.removal-values.cities', code_city); $.ajax({ type: "POST", url: action, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, data: { code_city: code_city },   success: function (data) {   $('#city').empty(); $('#deposit').empty();   for (let i = 0; i < data.cities.length; i++) { $('#city').append('<option value="' + data.cities[i].NM + '">' + data.cities[i].NM + '<option>'); }   if (data.deposits.length > 0) { for (let i = 0; i < data.deposits.length; i++) { $('#deposit').append('<option value="' + data.deposits[i].NM + '">' + data.deposits[i].NM + '<option>'); } } else { // $('#deposit').prop('disabled', true); // $('#city').prop('disabled', false); }   $('#city').trigger('change'); } });   });   $('#deposit').on('change', function () { depositId = $(this).val(); localStorage.setItem('selected_deposit_id', depositId); });   $('#uf_destiny').change(function () { let code_city = $(this).val(); let depositDestiny = localStorage.getItem('selected_deposit_destiny_id'); let action = route('removal.removal-values.cities', code_city); $.ajax({ type: "POST", url: action, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, data: { code_city: code_city },   success: function (data) {   $('#city_destiny').empty(); $('#deposit_destiny').empty();   for (let i = 0; i < data.cities.length; i++) { $('#city_destiny').append('<option value="' + data.cities[i].NM + '">' + data.cities[i].NM + '</option>'); }   if (data.deposits.length > 0) { // $('#deposit_destiny').prop('disabled', false); //$('#city_destiny').empty(); // $('#city_destiny').prop('disabled', true); for (let i = 0; i < data.deposits.length; i++) { $('#deposit_destiny').append('<option value="' + data.deposits[i].NM + '">' + data.deposits[i].NM + '</option>'); } } else { // $('#deposit_destiny').prop('disabled', true); // $('#city_destiny').prop('disabled', false); }   $('#city_destiny').trigger('change'); } }); });   $('#deposit_destiny').on('change', function () { let depositDestinyId = $(this).val(); localStorage.setItem('selected_deposit_destiny_id', depositDestinyId); });   }); </code>
×

Informação importante

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