Как вернуть значение из функции javascript в шаблон django в том же представлении?
Я просто получаю значение из тега input с помощью javascript. Но теперь мне нужно передать это значение шаблону Django на той же странице, чтобы выполнить требуемую задачу.
<!DOCTYPE HTML>
<HTML>
<body>
<h1>In Django Template</h1>
<input type="text" id="agency_id" name="fname" value="1">
<select class="select" name="delivery_agent" id="DeliveryAgent">
<option class="form-control" value="{{ agent.id }}" {% if agent.id == delivery_agency_id %} selected="selected" {% endif %}>{{ agent.name }}
</option> {% endfor %}
</select>
<script>
var delivery_agency_id = document.getElementById("agency_id").value;
alert(delivery_agency_id )
</script>
Здесь я получаю идентификатор агентства с помощью скрипта. Теперь мне нужно передать его в условие if, как в приведенном выше коде. Пожалуйста, помогите мне решить эту проблему.
Чтобы присвоить значение из любого шаблона, в данном случае Django, вы просто интерполируете его. Что-то вроде
<script type="text/javascript">
var a = "{{someDjangoVariable}}";
</script>
Ref: Django Template Variables and Javascript
Если вам нужно просто сравнить значение, вам не нужно передавать его обратно в шаблон. Чтобы сделать это чисто в HTML и JS, вы можете проверить следующее
https://jsbin.com/guvugipoji/edit?html,js,output
Важными частями являются
<select name="" id="deliveryAgent" onChange="checkValue()">
и
function checkValue() {
var sel = document.getElementById('deliveryAgent');
var val = sel.value;
if(val === "1") {
alert("found 1")
}
}
BTW если вам нужно, чтобы эта часть if(val === "1") {
устанавливалась динамически, то в шаблонизаторе вы устанавливаете это значение.
<script type="text/javascript">
var compareWith = "{{someDjangoVariable}}";
</script>
и где-то там дальше
if(val === compareWith) {