Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как с помощью jquery получить данные из input и подставив их в get параметры перенапр (https://javascript.ru/forum/misc/79747-kak-s-pomoshhyu-jquery-poluchit-dannye-iz-input-i-podstaviv-ikh-v-get-parametry-perenapr.html)

ОльгаSha 18.03.2020 17:09

Как с помощью jquery получить данные из input и подставив их в get параметры перенапр
 
Здравствуйте!
У меня есть форма поиска с выпадающим списком.
Т.е. пользователь вводит в поле свой запрос и в выпадающем списке выбирает где искать его запрос.
Моя форма:

<section class="container-search">
        <form class="search-new" action="" >
            <input id ="my-search" class="new-search" type="search" name="query" placeholder="Поиск" autocomplete="off"  required/>
            <ul class="search-ac">
            <li><a class="country" id="ru" href="/ru/search"><img src="/app/site/assets/img/russia.png" alt="Россия">Россия</a></li>
            <li><a class="country" id="ua" href="/ua/search"><img src="/app/site/assets/img/ukraine.png" alt="Украина">Украина</a></li>
            <li><a class="country" id="kz" href="/kz/search"><img src="/app/site/assets/img/kazakhstan.png" alt="Казахстан">Казахстан</a></li>
            </ul>
        </form>
    </section>


По т.е. допустим пользователь решил поискать "береза" в России. По тегу <a> пользователь переходит по ссылке /ru/search, а мне нужно, чтобы он переходил по ссылке /ru/search?query=береза.
Для этого я написала скрипт.

$(document).ready(function() {
                /*Получаю id страны при собитии click*/
                function cnt() {
                    $('a.country').click(function() {
                        var country = $(this).attr('id');
                        return country;
                    });
                }
                // результат функции записываю в переменную
                var c = cnt();
                //получаю результат ввода в input
                function vln() {
                    $("input#my-search").keyup(function() {
                        var value = $(this).val();
                    }).keyup();
                    return value;
                }
                // результат функции записываю в переменную
                var v = vln();
                //формирую новые url
                var url = "http://dev.com/" + c + "?query=" + v;
                //Переопределяю href для ссылки
                $("a.country").attr("href", url);
            });


Но к решению задачи не продвинулась. Помогите, пожалуйста, советом, комментарий, примером.
То, что я совсем новичoк в js, думаю очевидно.
Заранее спасибо!

laimas 18.03.2020 17:27

Может выбор страны сделать списком?

function cnt() { установка обработчика и function vln() тоже самое, не нужно.

рони 18.03.2020 17:46

ОльгаSha,
заменить скрипт полностью на этот код
$(function() {
$('.search-new').on('click', 'a.country', function(event) {
event.preventDefault();
event.delegateTarget.action = `https://dev.com/${this.id}/search`;
event.delegateTarget.submit();
   });
});

laimas 18.03.2020 19:00

Цитата:

Сообщение от рони
заменить скрипт полностью на этот код

А если поле будет пустое?

рони 18.03.2020 19:20

Цитата:

Сообщение от laimas
А если поле будет пустое?

Цитата:

Сообщение от ОльгаSha
required

:-?

laimas 19.03.2020 02:49

рони,
это механизм, а не логика, для форм регистраций логично, для поиска нет. :)


Часовой пояс GMT +3, время: 06:07.