Проблема в том, что ваша функция searched()
в скрипте-теге.
Если у вас есть, например, следующие name
-экземпляры:
[
{
'First': 'foo',
'Last': 'bar',
},
{
'First': 'foobar',
'Last': 'barfoo',
}
]
Таким образом, ваш обработанный if
- else
в функции будет выглядеть следующим образом:
function searched(){
nameSearched = document.getElementById('name').value;
if ("foo" == nameSearched) {
...
} else {
...
}
if ("bar" == nameSearched) {
...
} else {
...
}
}
Итак, как вы можете видеть, вы всегда сталкиваетесь с else
, если вы ввели foo
.
В вашем for
-l oop можно сделать следующее:
<script type="text/javascript">
function searched(){
nameSearched = document.getElementById('name').value;
{% for names in name %}
{% if forloop.first %}
if ("{{ names.First }}" == nameSearched) {
document.getElementById('dis').innerHTML = "{{ names.Last }}";
}
{% else %}
else if ("{{ names.First }}" == nameSearched) {
document.getElementById('dis').innerHTML = "{{ names.Last }}";
}
{% endif %}
{% endfor %}
{% if name %}
else {
document.getElementById('dis').innerHTML = "none";
}
{% endif %}
}
</script>
Это приведет к следующему:
function searched(){
nameSearched = document.getElementById('name').value;
if ("foo" == nameSearched) {
...
}
else if ("foobar" == nameSearched) {
...
}
else {
...
}
}