Как вытащить выбранные значения из тега выбора в HTML? - PullRequest
1 голос
/ 10 января 2020

Я создал шаблон Django и пытаюсь получить выбранное значение из тега параметров, используя JavaScript. Однако, хотя мой текущий код работает без проблем, при нажатии кнопки «Отправить» ответа нет. Другая веб-страница не загружается, независимо от того, какую опцию я выберу. Может ли кто-нибудь помочь с объяснением, почему это происходит?

<!doctype html>
<h1>Searching for a particular tag?</h1>

<input type="text" id="target"/>
<select single="single" name="tag_options" id="tag_options">
    <option value="0">Hello</option>
    <option value="1">Goodbye</option>
</select>

<button type="submit" onclick="search()">Submit</button>
<br>
<a href="{% url 'frontpage' %}">Front Page</a>

<script>
    function search(){
        var values =  $('#tag_options').val();
        this.document.location.href = "http://127.0.0.1:8000/searchtableresults/"+values;

    }

</script>

Кроме того, я бы в конечном итоге хотел бы изменить варианты с stati c на варианты, основанные на значениях, которые я загружаю из представления, например,

<!doctype html>
<h1>Searching for a particular tag?</h1>

<input type="text" id="target"/>
<select single="single" name="tag_options" id="tag_options">
    {% for possible_tag in possible_tags %}
    <option value="{{possible_tag}}">{{possible_tag}}</option>
    {% endfor %}
</select>

<button type="submit" onclick="search()">Submit</button>
<br>
<a href="{% url 'frontpage' %}">Front Page</a>

<script>
    function search(){
        var values =  $('#tag_options').val();
        this.document.location.href = "http://127.0.0.1:8000/searchtableresults/"+values;

    }

</script>

Будет ли это работать или мне нужно попробовать что-то еще?

1 Ответ

0 голосов
/ 10 января 2020

Я полагаю, что что-то подобное с использованием jquery будет работать:

//Get select element
const tagSelect = document.querySelector('#tag_options');

//Access Options
let selectedTag = tagSelect.selectedOptions[0].getAttribute('value');

Чтобы изменить параметры:

let tags = []

//Create
tags.forEach(tag => {
  const option = document.createElement('option');
  option.setAttribute('blah-blah', tag.whatever);
  tagSelect.appendChild(option);
})

Надеюсь, это поможет каким-то образом. ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...