onclick window.location.href с введенным кратным значением - PullRequest
0 голосов
/ 09 января 2019

У меня есть несколько флажков (из метки блога). Я использую следующий код для загрузки выбранных меток, но это работает только для одной метки.

Я пробовал, но он работает только для одной метки проверки, и ввод флажка исчезает и загружает только страницу

/search/?q=label:Topic1

мой код

    <ul>
    <li> <input class="topik" type="checkbox" value="label:topik1"></li>
    <li> <input class="topik" type="checkbox" value="label:topik2"></li>
    <li> <input class="topik" type="checkbox" value="label:topik3"></li>
    <li> <input class="topik" type="checkbox" value="label:topik4"></li>
    <li> <input class="topik" type="checkbox" value="label:topik5"></li>
    </ul>

     jQuery(document).ready(function($) {
     $(".topik").change(function() { 
     window.location.href = '/search/?q=' + this.value;
     });
     });

Теперь вопрос в том, что я хочу иметь возможность выбирать более одного ярлыка. Как я могу сделать это в коде? Теперь вопрос в том, что я хочу иметь возможность выбирать более одного ярлыка. Как я могу сделать это в коде? Загрузка страниц в следующем формате

/search/?q=label:Topic1|label:Topic2|label:Topic3

Спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Если вы хотите достичь этого, вам не нужно устанавливать window.location.href в вашей функции события.

Вы можете сохранить статус ваших флажков в массиве и использовать .reduce () для генерации строки

label:Topic1|label:Topic2|label:Topic3,

и тогда вы можете определить, в каком событии установить значение window.location.href (может быть при нажатии кнопки).

0 голосов
/ 09 января 2019

Проблема с вашим кодом в том, что он перенаправляет на изменение ввода.

$(".topik").change(function() { 
     window.location.href = '/search/?q=' + this.value;
     });

Когда вы нажимаете один флажок ввода, он принимает свое значение и переходит в местоположение с именем метки. Мой код после выбора добавляет все значения в строку и при нажатии кнопки выполняет перенаправление.

 <ul>
        <li> <input class="topik" type="checkbox" value="label:topik1"></li>
        <li> <input class="topik" type="checkbox" value="label:topik2"></li>
        <li> <input class="topik" type="checkbox" value="label:topik3"></li>
        <li> <input class="topik" type="checkbox" value="label:topik4"></li>
        <li> <input class="topik" type="checkbox" value="label:topik5"></li>
        </ul>
        <button id="a">click</button>


    var t='/search/?q=';
var k;
var count=0;
jQuery(document).ready(function($) {
     $(".topik").change(function() { 
     count++;
     if(count==1)
     t = t + this.value;
     else
     t = t +"|"+ this.value;

     alert(t);
     });
     $("#a").click(()=>{
     window.location.href=t;
     })
     });
...