Ir para conteúdo

Arquivado

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

marcelocardoso

SELECT Jquery não seleciona

Recommended Posts

Pessoal!


Desmembrei este código apenas para exemplo, onde não estou conseguindo selecionar o código.

<script src="jquery-1.3.1.js" type="text/javascript"></script>			
<form id="formcadastro3" method="post">	
									
	<input id="camposelecionado" type="hidden" value="3">

	<script type="text/javascript">
		$(document).ready(function(){
			   $('#cadid2').change(function(){
			   $('#cadid3').load('index.asp?id=3&subcategoria='+ $('#cadid2').val());
			});
			$('#cadid2').trigger("change");
		});
	</script>

	<script type="text/javascript">
		$(document).ready(function(){ 
			$('#cadid3').find('option[value="' + $("#camposelecionado").val() + '"]').attr("selected", "selected"); 
		});
	</script>

	<select id="cadid2" name="cadid2">
	   <option value="1">Financeiro</option>
	   <option value="2">Aquisicoes</option>
	   <option value="3">Contratos</option>
	   <option value="4">Notas Auditoria</option>
	   <option value="5">Auditores</option>
	   <option value="6">Recursos Humanos</option>
	   <option value="7">Riscos Estrategicos</option>
	</select>

	<select id="cadid3" name="cadid3">
		<option value="4">Cobranca</option>
		<option value="3">Tesouraria</option>
	</select>


</form>

Tenho um código ajax onde busco os dados do banco para jogar no CADID3, porém, o mesmo com o código acima não traz selecionado.
Tentei usando o:
 

	<script type="text/javascript">
		$(document).ready(function(){ 
			$('#cadid3').find('option[value="' + $("#camposelecionado").val() + '"]').attr("selected", "selected"); 
		});
	</script>

também não vai, tentei selecionar com o ASP, ( IF variavel = varivel THEN response.write " selected") também não.
será q estou errando... se souberem de soluções para este código, agradeço retorno.
desde já, grato. 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara como sempre...

Apresenta erros? Quais?

 

Já tentou ir debugando com

console.log('passei aqui');

console.log('Ativou função x');


console.log('Clicou no botão Y');

console.log('Iniciou o ajax');

E novamente recomendo a leitura:

https://github.com/gabrieldarezzo/desafiosInternos/tree/master/ajax#guia-definitivo-ajax

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parece simples, meu amigo.

 

O problema parece ser o seguinte: quando a função que seleciona a opção desejada é chamada, o select ainda nem foi preenchido, pois há um tempo de resposta para a requisição que você faz para "index.asp". Quando a  próxima instrução depende de uma resposta de uma requisição feita anteriormente, deverá aguardar a resposta antes de executá-la.

 

Então você precisa chamar o procedimento de seleção após garantir que o select já foi devidamente populado (que é quando a função load está completa e retornou "sucesso"). Experimente o seguinte:

 

<script>
    $(document).ready(function(){
        
      $('#cadid2').change(function(){
          $('#cadid3').load('index.asp?id=3&subcategoria='+ $('#cadid2').val(), function( response, status, xhr ){
            if (status == "success"){   
                 $('#cadid3').find('option[value="' + $("#camposelecionado").val() + '"]').attr("selected", "selected"); 
            }  
          });                       
      });
        
      $('#cadid2').trigger("change");
        
    });
</script>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • 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 FabianoSouza
      Eu preciso exibir duas informações em minha consulta:
      1) A quantidade de pessoas inscritas numa turma de treinamento (isso é feito com um simples COUNT)
      2) Uma flag de excesso de inscrições na turma. Seria obtido pela comparação entre a quantidade máxima permitida (já existe esse campo) e o COUNT feito acima.
       
      Até aqui sem problemas.
       
      O que quero é evitar fazer duas contagens (1 para saber a quantidade de inscritos, e outra para gerar a flag de excesso de inscrições).
       
      Há uma forma de utilizar UMA contagem para atender as duas necessidades?
       
      Meu código está assim:
       
      ... --AQUI FAZ A COMPARAÇÃO PARA GERAR A FLAG DE EXCESSO DE INSCRIÇÕES , CASE WHEN (SELECT COUNT(*) FROM dbo.tab AS ITT WHERE ITT.codTurmaDeTreina = T.id) > T.lotacaoMax Then T.nome + '&nbsp;'+'<span class=%22icon-aviso fcolor-critico%22 style=%22font-size:18px%22 title=Excesso&nbsp;de&nbsp;inscrições></span>' --AQUI FAZ A CONTAGEM DE INSCRIÇÕES , (SELECT COUNT(*) FROM dbo.tab AS ITT WHERE ITT.codTurmaDeTreina = T.id) AS 'Inscrições'  
    • Por FabianoSouza
      Possuo uma coluna de data.
      Eu gostaria que os registros com datas futuras aparecessem no topo do meu select, em relação aos demais registros.
      Em seguida, gostaria que somente esses registros com datas futuras ficassem em ordem crescente.
      Algo como 
       
      João  | 16/11/2023
      Maria | 17/11/2023
      José  |  20/11/2023
       
      -----------------------------
      (demais registros da base)
      Antônio   |  20/05/2023
      Rosa        | 15/08/2023
      Cida         | 15/10/2022
      Pedro      |  20/05/2021
      Paulo      |  14/11/2020
       
      O select seria esse.
      select dbo.formataData(ET.dataInicial) AS 'data' FROM dbo.tab AS ET GROUP BY ET.dataInicial  
    • Por ILR master
      Salve galera.
       
      Vou publicar um evento e quero colocar um Cronômetro regressivo que mostre em tempo real os dias, horas e minutos que faltam para determinada data, tipo:.
      Faltam 5 dias, 12:30:00 para inauguração.
       
      Qdo chegar no dia, quero que apenas apareça uma mensagem.
       
      Alguém pode me ajudar?
    • Por gersonab
      bom dia
      tenho uma aplicação onde gero um arquivo em pdf, gostaria de recuperar a url do pdf q foi criado, pois quando este é criado ele abre automaticamente e ou ja faz o download do mesmo, preciso da url para enviar para outros.
      <button type="button" class="btn btn-outline-primary" onclick="createPDF();">Imprimir</button> <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.4.1/jspdf.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/canvas2image@1.0.5/canvas2image.min.js"></script> <script language="javascript"> (function($){ $.fn.createPdf = function(parametros) { var config = { 'fileName':'html-to-pdf' }; if (parametros){ $.extend(config, parametros); } var orig = $(this); var widthOrig = $(orig).width(); $(orig).width(900); var quotes = document.getElementById($(orig).attr('id')); html2canvas(quotes, { onrendered: function(canvas) { var pdf = new jsPDF('p', 'pt', 'letter'); for (var i = 0; i <= quotes.clientHeight/900; i++) { var srcImg = canvas; var sX = 0; var sY = 900*i; var sWidth = 900; var sHeight = 900; var dX = 0; var dY = 0; var dWidth = 900; var dHeight = 900; window.onePageCanvas = document.createElement("canvas"); onePageCanvas.setAttribute('width', 900); onePageCanvas.setAttribute('height', 900); var ctx = onePageCanvas.getContext('2d'); ctx.drawImage(srcImg,sX,sY,sWidth,sHeight,dX,dY,dWidth,dHeight); var canvasDataURL = onePageCanvas.toDataURL("image/png", 1.0); var width = onePageCanvas.width; var height = onePageCanvas.clientHeight; if (i > 0) { pdf.addPage(612, 791); } pdf.setPage(i+1); pdf.addImage(canvasDataURL, 'PNG', 20, 40, (width*.62), (height*.62)); // Retirar o comentário caso queira ver como está sendo gerado o canvas. //document.body.appendChild(onePageCanvas); } pdf.save(config.fileName); $(orig).width(widthOrig); } }); }; })(jQuery); function createPDF() { $('#renderPDF').createPdf({ 'fileName' : '<?php echo $usercli['idocl']; ?>' }); }  
×

Informação importante

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