Ir para conteúdo
Wualace Chaves

Acessar via Jquey controle criado com ajax em um edititemtemplate

Recommended Posts

Estou utilizando o código abaixo para acessar uma imagem com jquery:

window.addEventListener('DOMContentLoaded', function (e) {
    var minhaimagem = document.querySelector('#id_da_minha_imagem');

    minhaimagem.addEventListener('click', function (e) {

       alert('Voce clicou na imagem');

    }, false);

}, false);

 

O código acima funciona perfeitamente quando a imagem está fora de um Gridview.
Minha dúvida é: Como faço para acessar uma imagem que está dentro de um Gridview em um EditItemTemplate??

Pelo que pesquisei na net o código acima não funciona porque o elemento ainda não existe no momento do document.ready.

 

Não tenho experiência com jquery. Existe um jeito de contornar esta situação??


Desde já agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu faria diferente, não conheço em detalhes seu problema, mas veja se funciona pra ti:

 

No seu código aspx adicione o evento onclick na imagem:

 

<asp:Image ID="Image" runat="server" onclick="javascript:SuaFuncao()" />

Então criei seu essa função no seu javascript:

 

function SuaFuncao() {
    alert('Click funciona!!');
}

 

Fiz um teste com ItemTemplate dentro da gridview e funcionou perfeitamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado quintelab!

 

Funcionou, mas tive que remover todo o código javascript contido neste laço:

 

window.addEventListener('DOMContentLoaded', function (e) {
    //código javascript

}, false);

 

Parece que esse laço faz com que o código javascript contido nele só seja executado após o html da página ter sido completamente carregado e analisado.

 

 

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 kim.y
      Boa tarde galera,
       
      estou com a seguinte dúvida, eu fiz um form para inserir dados no meu banco de dados via AJAX, ele insere normalmente porém quando faço o teste no arquivo ajax ele não mostra os alerts que eu fiz para testar a rotina.
       
      insert.php
      <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Page Title</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" type="text/css" media="screen" href="css/css.css" /> <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.js"></script> <script type="text/javascript" src="ajax.js"></script> <style> * { box-sizing: border-box; } input[type=text], select{ width: 100%; padding: 12px; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box; resize: vertical; } label { padding: 12px 12px 12px 0; display: inline-block; } input[type=submit] { background-color: #4CAF50; color: white; padding: 12px 20px; border: none; border-radius: 4px; cursor: pointer; float: right; } input[type=submit]:hover { background-color: #45a049; } .container { border-radius: 5px; background-color: #f2f2f2; padding: 20px; } .col-25 { float: left; width: 25%; margin-top: 6px; } .col-75 { float: left; width: 75%; margin-top: 6px; } /* Clear floats after the columns */ .row:after { content: ""; display: table; clear: both; } /* Responsive layout - when the screen is less than 600px wide, make the two columns stack on top of each other instead of next to each other */ @media (max-width: 600px) { .col-25, .col-75, input[type=submit] { width: 100%; margin-top: 0; } } </style> </head> <body> <div style="width:50%; margin:140px auto;"> <?php include "navbar.php" ?> <div class="container"> <form> <div class="row"> <div class="col-25"> <label for="fname">Login</label> </div> <div class="col-75"> <input type="text" id="nome" name="nome" placeholder="Insira seu nome de usuário.." autocomplete="off"> </div> </div> <div class="row"> <div class="col-25"> <label for="lname">Senha</label> </div> <div class="col-75"> <input type="text" id="senha" name="senha" placeholder="Insira sua senha.." autocomplete="off"> </div> </div> <div class="row"> <div class="col-25"> <label for="lname">Email</label> </div> <div class="col-75"> <input type="text" id="email" name="email" placeholder="Insira seu email.." autocomplete="off"> </div> </div> <div class="row"> <input type="submit" id="enviar" value="Enviar" style="margin-top:5px;"> </div> </form> </div> ajax.js
      $(document).ready(function(){ $('#enviar').click(function(){ $.ajax({ url: 'inserir.php', type: 'POST', data: 'nome=' + $('#nome').val() + '&senha=' + $('#senha').val() + '&email=' + $('#email').val(), success: function(data){ alert("YOUR SUCCESS MESSAGE HERE"); }, error: function (data) { alert("Error"); } }); }); }) inserir.php
      <?php $conn = mysqli_connect("localhost", "root","", "banco_teste"); mysqli_select_db($conn, "banco_teste"); $nome = $_POST['nome']; $senha = $_POST['senha']; $email = $_POST['email']; $retorno = 'OLÁ MUNDO!!!'; mysqli_query($conn, "INSERT INTO `usuario`(`nome`, `senha`, `email`) VALUES ('$nome', '$senha','$email')"); if(mysqli_affected_rows($conn) != -1){ $retorno = 'Sucesso!!!'; } else{ $retorno = 'ERRO!!!'; } echo $retorno; ?>  
    • Por Jesse&Francinete
      Olá pessoal, tô com um probleminha no meu código, eu tenho uma array com pelo menos 300 keys, peguei esse exemplo: https://www.w3schools.com/js/js_ajax_php.asp
       
      Ele funciona, mas se eu digito: "a" aparece vários registros, meu querer é o seguinte: Se eu digitar: "jesse.pereira" > echo "Usuário válido". Se eu digitar "jesse.pereir" > echo "Usuário inválido".
    • Por Diego Sanches
      Olá, estou fazendo o prototipo de dashboard para uma plataforma que estou criando, e estou com um ploblema para iniciar a sessão no login em ajax, com o CodeIgniter.
      já tentei fazer de várias maneiras e todas não funcionam, e quando funcionam perde a persistência ao trocar de página, sem criterio....
       
      Nessa ultima tentativa, eu crio um token e faço um redirect para um controller onde recupero esse token e inicio a sessão para o usuario, porém o codeigniter sempre cria um novo registro de sessão, em vez de manter na mesma e só incluir adcionar o data na sessão já iniciada...
       
      Nesse print em anexo, tem um exemplo... o primeiro registro é de quando eu acesso a página de login... o segundo registro é a sessão que é criada na requião ajax... e o terceiro é o registro de quando eu recupero o token e inicio a sessão do usuário...
       
      Na requisão Ajax até entendo o pq ele cria um novo registro... por isso fiz o token  temporário para fazer a autenticação, mas mesmo assim na troca páginas ele sempre gera uma nova... ainda não consgui entender porque não está mantendo na mesa sessão..
       
      alguém já teve algo parecido com o CI??
       
      Agradeço e até mais!!!

    • Por mamotinho
      Olá, estive pesquisando muito uma maneira de implementar o API Re-Captcha do Google dentro do ajax , eu não obtive sucessos. gostaria de saber se alguém já conseguiu colocar para funcionar o mesmo dentro do ajax. ou se alguém conhece algum tutorial que utilize os mesmos recursos que funcione dentro do ajax.
       
      Agradeço desde de já.
    • Por Danilo - Jesus voltará!
      Olá amigos, estou alimentando um select que vem do banco de dados, na verdade são vários serviços, e gostaria de adicionar ao carrinho de compras na minha session php o valor do select conforme abaixo, se for só clicar no carrinho eu consigo adicionar 1 no carrinho sem problemas, o meu problema é enviar o valor escolhido no select, já que tem vários alimentados pelo banco:

       
      <div class="form-group" id="adicionar"> <select class="form-control" name="select'.$dados['id_concurso'].'"> //AQUI COLOCO O NOME DO SELECT DE FORMA DINAMICA VINDA DO BANCO <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select> </div> <div class="form-group" style="margin-top:10px"> <a rel="nofollow" class="btn btn-common btn-lg"> Adicionar No Carrinho </a> //AO CLICAR AQUI PRECISO ENVIAR O VALOR ESCOLHIDO NO SELECT REFERENTE AO ID QUE PRECISO </div> </div> Sei que no javascript eu posso pegar o valor assim...
      $(document).ready(function(){ $("select).change(function(){ alert(this.value); }); });  
      mas o problema é dinamicamente que não estou conseguindo, pois quero inserir no array do carrinho exemplo:  
      array( chave => valor, chave2 => valor2, chave3 => valor3, ) Quem tiver uma luz aí eu agradeço...
       
       
×

Informação importante

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

Este projeto é mantido e patrocinado pelas empresas:
Hospedado por: