TransWikia.com

Passar variavel javascript para Django Form

Stack Overflow em Português Asked on December 28, 2021

Tenho um formulario Django com esse campo “Exame vinculado” que funciona da seguinte forma: O usuario clica em Selecionar Exame, vai para outra janela em que seleciona um exame ja existente, e com isso retorna para a pagina de criacao de modo que a url informa o exame que foi selecionado (ex: http://127.0.0.1:8000/exam/create?exam_index=23201 indica que o exame 23201 foi selecionado e deve ser vinculado).

Field

Assim, eu gostaria de, ao voltar para a tela com o exame selecionado, exibir esse id no campo (atualmente, se eu digitar um valor e clicar em salvar funciona, o que esta faltando e isso de preencher).

Tambem ja consigo pegar esse id da seguinte forma:

var param = /exam_index=([^&#=]*)/.exec(window.location.search);
var exam_id = param[1];

Tentei utilizar o “getElementById” mas nao estou conseguindo:

<div class="eight wide field" id="linked-exam-field">
                <label> Exame Vinculado</label>
                    {{form.linked_exam}}
                <a id="select-linked-exam" href = "/exam/search">
                     <i class="add square icon"></i>Selecionar Exame
                </a>
                <script>
                    var param = /exam_index=([^&#=]*)/.exec(window.location.search);
                    var exam_id = param[1];
                    console.log(exam_id);
                    //document.write(exam_id);
                    document.getElementById("linked-exam-field").value = exam_id;

                </script>
</div>

Como posso fazer isso?

One Answer

No Html:

<div id="linked_exam">{{form.linked_exam}}</div>

No script:

document.getElementById("linked_exam").innerText = exam_id;

Primeiro: no seu código você está capturando a label em vez do campo em si, logo para pegar o campo, foi posto uma tag quanquer e posto o id para assim o js pegar o objeto correto. Caso continuasse pegando a label, o código script iria sobrescrever a label. Segundo: Seu código js estava quase certo, a lógica que falta entender é a seguinte: O getElementX pega o elemento html completo, ou seja, ele usa o X para encontrar o elemento que deseja porém ele te retorna atributos, valores, class, name e etc... O uso do console.log é um grande aliado para entender e selecionar o elemento que deseja trabalhar, no seu caso que é escrever dentro do html, o elemento que quase sempre funciona é o "innerText", porém existem outras opções como o "innerHtml", vai depender muito de como foi feito, renderizado o html.

Answered by Steffany on December 28, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP