Ir para conteúdo

POWERED BY:

Arquivado

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

Shmu

Chamar e fechar modal usando apenas o TypeScript

Recommended Posts

Estou iniciando uns estudos com o TypeScript e estou usando ele em uma aplicação minha que está sendo desenvolvida com o .NET Core Razor.

 

Eu estou precisando de fazer um código em que abra um modal Bootstrap usando apenas o TypeScript. Sem o jQuery...

 

Eu não sei como fazer isso, nao achei função que outras pessoas ja fizeram para isso, apenas com o Angular(que eu nao estou usando). Mas agora estou precisando.

 

Espero que me ajudem nessa. Eu tentei fazer usando "display", mas não consegui.

 

A questão é o seguinte. Eu preciso fazer um <select> em que se o usuario escolher a opção "Sim", abrirá o modal com algumas opções a serem preenchidas, e ao mesmo tempo terei um botão(caso a opção seja "sim"), para ele clicar e poder mudar oque colocou nas opçoes do modal.

 

Como eu tentei fazer:

<div class="modal fade d-none" id="modalExemplo" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title" id="exampleModalLabel">Título do modal</h5>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Fechar">
                        <span aria-hidden="true">×</span>
                    </button>
                </div>
                <div class="modal-body">
                    ...
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary">Fechar</button>
                    <button type="button" class="btn btn-primary">Salvar mudanças</button>
                </div>
            </div>
        </div>
    </div>


<select class="form-control w-100" id="data_test" onchange="modalOpen()">
  <option value="NA">Não analizar</option>
  <option value="S">Sim</option>
  <option value="N">Não</option>
</select>

<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modalExemplo">
  Abrir modal de demonstração
</button>
function modalOpen() {
    if ((<HTMLInputElement>document.getElementById("data_test")).value == "S") {
        (<HTMLInputElement>document.getElementById("modalExemplo")).classList.remove("d-none");
    } else {
        (<HTMLInputElement>document.getElementById("modalExemplo")).classList.add("d-none");
    }
}

Já que estou usando o Bootstrap, por que não usar a classe "d-none"? Então tentei fazer desta maneira... mas não funcionou

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Shmu Bom esse código vai abrir exatamente com o método modal() do bootstrap Js faz, só falta você passar ele para o TypeScript.

function modal(elemento)
{
	let modal, overlay;
    
    modal = document.getElementById(elemento);
    
    if (modal.classList.contains("show"))
    {
    	overlay = document.getElementsByClassName("modal-backdrop");
    	modal.classList.remove("show");
        modal.style.display = "none";
        if (overlay.length > 0)
        {
        	overlay = overlay[0];
            overlay.parentNode.removeChild(overlay);
        }
    }
    else
    {
        overlay = document.createElement("div");
        overlay.classList.add("modal-backdrop", "fade", "show");
        document.getElementsByTagName("body")[0].appendChild(overlay);
        modal.style.display = "block";
        setTimeout(() => {modal.classList.add("show");}, 25);
    }     
    
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Rafael_Ferreira
      Não consigo carregar a imagem do captcha do meu formulário. Foi testado com o xampp e easyphp. Também não carregou a imagem de outros captcha. 
       
       
    • Por luiz monteiro
      Olá.
      Estou atualizando meu conhecimento com Front-End e me deparei com o seguinte problema.
      Criei um sistema para fazer o upload de imagens e alguns campos text.
      Algo bem simples para depois começar a estudar javascript para mostrar a miniatura....
      Mas quando saio do navegador Chrome ou da aba por mais de 3 minutos, ao retornar o navegador as vezes atualiza ou nem chega atualizar mas limpa os campos.
      Estou usando um Smart Motorola com Android, mas um amigo testou no iPhone e acontece a mesma coisa.
      Gostaria de saber se há como usar javascript para evitar isso?
      Agradeço desde já.

      <!DOCTYPE html>
      <html>
      <head>
          <meta charset="utf-8">
          <meta name="viewport" content="width=device-width, initial-scale=1">
          <title>Uploader</title>
      </head>
      <body>
          <form action="?" method="post" enctype="multipart/form-data">
              <br><br>
              <div>selecione a imagem 1</div>
              <input type="file" name="foto1" accept="image/*">
              <br><br>
              <input type="text" name="nome_imagem1">
              
              <br><br>
              <input type="file" name="foto2" accept="image/*">
              <br><br>
              <input type="text" name="nome_imagem2">
              
              <br><br>

              <input type="file" name="foto3" accept="image/*">
              <br><br>
              <input type="text" name="nome_imagem3">
              
              <br><br>
              <input type="submit" value="Enviar">
              <br><br>
          </form>
      <?php
      if ($_SERVER['REQUEST_METHOD'] == 'POST')
      {
          vardump ($_FILES);
      }
      ?>
      </body>
      </html>
       
       
       
    • Por belann
      Olá!
       
      Estou usando o nextjs versão 15.2.3 e criei uma navbar que quando é carregado o programa aparece com a home, mas na hora de clicar na página produtos desaparece a navbar.
      A navbar esta sendo chamada no layout.tsx estou usando typescript
      e fica dessa forma
      <div>           <Navbar/>             <main>{children}</main>             </div>  
    • Por ILR master
      Fala pessoal, tudo bem?
       
      Eu tenho o seguinte código:
       
      <script>
         $(function(){
      var jElement = $('.fixar_banner');
      $(window).scroll(function(){
          if ( $(this).scrollTop() > 120 ){
              jElement.css({
                  'position':'fixed',
                  'top':'10px'
              });
          }else{
              jElement.css({
                  'position':'relative',
                  'top':'auto'
              });
          }
      });
      });
      </script>
       
      Porém, eu quero que a div fique fixa até que outro elemento apareça na tela, tipo o rodapé da página por exemplo. É mais ou menos como a página de notícia do uol.
      https://noticias.uol.com.br/internacional/ultimas-noticias/2025/01/19/sonho-americano-brasileiros-moram-em-carro-e-buscam-comida-no-lixo-nos-eua.htm
       
      Espero ter sido claro.
       
      Obrigado :)
       
×

Informação importante

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