Просто нужна небольшая помощь для моей панели поиска

Я скопировал на YouTube руководство о том, как создать «панель автозаполнения поиска» — сделано на сайте GrecStack, все работает нормально. Мне просто интересно, есть ли способ на самом деле перенаправить пользователя на другую HTML-страницу.

Я хотел бы, чтобы моя панель поиска могла перенаправлять пользователей на другую HTML-страницу. Это сделано с помощью JavaScript, HTML и CSS.

let avaliableKeywords = [
  '6TEST6',
  '5TEST5',
  '4TEST4',
  '3TEST3',
  '2TEST2',
  '1TEST1',
];

const resultsBox = document.querySelector(".result-box")
const inputBox = document.getElementById("input-box")

inputBox.onkeyup = function() {
  let result = [];
  let input = inputBox.value;
  if (input.length) {
    result = avaliableKeywords.filter((keyword) => {
      return keyword.toLowerCase().includes(input.toLowerCase());
    });
    console.info(result);
  }
  display(result);

  if (!result.length) {
    resultsBox.innerHTML = '';
  }
}

function display(result) {
  const content = result.map((list) => {
    return "<li onclick=selectInput(this)>" + list + "</li>";
  });

  resultsBox.innerHTML = "<ul>" + content.join('') + "</ul>";
}


function selectInput(list) {
  inputBox.value = list.innerHTML
  resultsBox.innerHTML = '';
}
* {
  margin: 0;
  padding: 0;
  font-family: "Poppins" sans-serif;
  box-sizing: border-box;
}

body {
  background: #181818
}

.search-box {
  position: absolute;
  top: 50%;
  right: 50%;
  width: 600px;
  background: rgb(255, 255, 255);
  border-radius: 5px;
  margin: 200px auto 0;
}

.row-search {
  display: flex;
  align-items: center;
  padding: 10px 20px;
}

input {
  flex: 1;
  height: 50px;
  background: transparent;
  border: 0;
  outline: 0;
  font-size: 18px;
  color: #333;
}

button {
  background: transparent;
  border: 0;
  outline: 0;
}

button .Srch-img {
  width: 25px;
  color: #555;
  font-size: 22px;
  cursor: pointer;
}

 ::placeholder {
  color: #555;
}

.result-box ul {
  border-top: 1px solid #999;
  padding: 15px 10px;
}

.result-box ul li {
  list-style: none;
  border-radius: 3px;
  padding: 15px 10px;
  cursor: pointer;
}

.result-box ul li:hover {
  background: #e9f3ff;
}

.result-box {
  max-height: 300px;
  overflow-y: scroll;
}
<link rel = "stylesheet" href = "style.css">
<script src = "https://unpkg.com/[email protected]/dist/boxicons.js"></script>

<header class = "header">
  <a href = "#" class = "logo">FYE-Movies</a>

  <nav class = "navbar">
    <a href = "index.html">Home</a>
    <a href = "Movies.html">Featured Movies</a>
    <a href = "Series.html">Series</a>
    <a href = "Search.html">Search</a>
    <a href = "Beta.html">BETA Version</a>
  </nav>
  <div class = "search-box">
    <div class = "row-search">
      <input type = "text" id = "input-box" placeholder = "Search Movies" autocomplete = "off">
      <button><img class = "Srch-img" src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAAXNSR0IArs4c6QAAAv5JREFUWEfVl1mojVEUx3/XWAp54xozRMjNi4QHUaYoD4iMxeVFoUSUlGRMJCRkKFIohVAyPSBPFGXIFJFQlIyZ9l/ruN/dfed8e1/nHMd6Oef7zlr//T9r3lVUmFRVGB/+W0LDgBHAQKAr0BZ4CTwCrrn3Z4HLxfB2lodqgO3A4IDDzgPzgbsBunlVChGaDuwGmkcc8AmYBJyKsKmnmo/QBOBoQvObC9NO4CJwD3hsoesFKJxzgcYJfYX3XENIpRHqDNwCWhrgQ2AMcL/AAX2BM0AH03kN9HYhfBNLKo3QcWC8AckbQwKBReYq0NFsdwHz/pbQAOC6gXwFegJPIkBVBDfgdzv5CXS3SgyG8D20BVhg1vq+KBipTvGwq7TJ9rgE2BiD4RNSycorkkHWY2LwpDvR5c8RM7oADI8B8Am9A1obQCvgfQyY6XaxKtTjU0BFEiw+IeVNU7NuAnwPRqpTVN/6bI/qSy1iMHxCL4B2BqBPjYdYqQaem5HaR78YAJ/QFcsdYYy2GRWDJ91xwAkzOgRMiwHwCa0AVhnAHvdPa2PATPcgMNW+L3Uh2xCD4RPSKLhjAD+s26o5hor60E1T/gL0AJ6FGksvrVMfcM1shoE8sEn/KgC0k3Xq9qa72hWFPB4laYSUlLeBNoakQToqY5b1B07bniQzFUM34GMUmzweEsZY4GQCTNN+B3ApMe3VQDVAhwJzPKxjbuTMAj4Ui5BwpgD7gWYRoOo/yiFtlm8BjZ+tgBpukGRtjH2AbeaFLECNCVWlvKncyzVYhW19onoL4mQRyhlrCRuZ2KmVZ40sR7RL7/MWOi1z/uqhBFeiF4VQFo7/uypOF4DkFimdlVmeCvVQLCHprwGWpRiqUaphpkopCQlbl4TZKSerWPRezbeelJKQDlKe7XXryMwUUnqvdqHN8o+UmlDuoM2u9BemkNKVKXm7KetVWqvs4gSptcDycofMP2+dJbSIbUrL6nKFLHm2Ro1GUNmrrCGtoqw5FETwX4SsILGKI/QL1St7JZXUgxYAAAAASUVORK5CYII = "/></button>
    </div>
    <div class = "result-box">
    </div>
  </div>

Ваша панель поиска в настоящее время находится в форме? Вам следует отредактировать свой вопрос, включив в него весь соответствующий код в качестве минимально воспроизводимого примера.

mykaf 05.08.2024 21:58

Что вы пробовали и что работает не так, как ожидалось? Вы просто спрашиваете как выполнить перенаправление в JavaScript?

David 05.08.2024 22:02

Только что добавил свои html и css

Aiden Knight 05.08.2024 22:07

ваш раздел <style< должен находиться в разделе <head>

Mehdi 05.08.2024 22:09

хорошо, я это сделал, но как мне заставить его перенаправить их?

Aiden Knight 05.08.2024 22:12

тег <header> не закрывается во фрагменте

Mehdi 05.08.2024 22:23

Ваша кнопка в настоящее время ничего не делает; похоже, вам нужно добавить к нему прослушиватель событий и использовать document.location.href, чтобы отправить их на другую страницу. См. stackoverflow.com/questions/503093/…

mykaf 05.08.2024 22:24

Ладно, я закрыл шапку.

Aiden Knight 05.08.2024 22:25

дай мне посмотреть, я перезвоню тебе.

Aiden Knight 05.08.2024 22:26

Я немного запутался, мне бы хотелось, чтобы каждый «Тест» переходил на другую ссылку. Если вы хотите протестировать, все должно работать в VS. Я не очень хорошо разбираюсь в js.

Aiden Knight 05.08.2024 22:27
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
11
85
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Оберните форму и измените местоположение при отправке

const searchForm = document.getElementById("searchForm")
const inputBox = document.getElementById("input-box")

searchForm.addEventListener('submit', (e) => {
  // e.target.action = `https://google.com/search?q=${inputBox.value}`;
  e.preventDefault();
  location = `https://test.com/${inputBox.value}.html`;
})
<div class = "search-box">
  <form id = "searchForm" target = "_blank">
    <div class = "row-search">
      <input type = "text" id = "input-box" placeholder = "Search Movies" autocomplete = "off">
      <button type = "submit">...</button>
    </div>
  </form>
</div>

похоже, не работает.

Aiden Knight 05.08.2024 22:44

Список не отображается

Aiden Knight 05.08.2024 22:44

Скопируйте его на свой сервер и запустите оттуда.

mplungjan 05.08.2024 22:44

Попробуй сейчас. Ваш CSS переместил окно поиска слишком далеко влево.

mplungjan 05.08.2024 22:47

Я только что заметил проблему: когда я пытаюсь загрузить страницу на своем платном домене, она ничего не показывает.

Aiden Knight 06.08.2024 00:40

И в консоли ошибок нет.

Aiden Knight 06.08.2024 00:48

Хорошо, я исправил это, спасибо. Но файлы, похоже, не обновляются в моей учетной записи ftp, я добавляю их, а они не обновляются в моем домене.

Aiden Knight 06.08.2024 12:22

Извините, я не могу с этим помочь

mplungjan 06.08.2024 13:04

Хорошо, как мне удалить "?" в конце ссылки, например: «somthing.com/Somthing.html

Aiden Knight 06.08.2024 13:34

Я не понимаю что ты имеешь в виду. Если вы не поместите его туда, его там не будет. Если вы хотите перенаправить на e.target.action = `https://something.com/something.html` , сделайте это. Если вы хотите передать ему значение, вам понадобится ?: `https://something.com/something.html?${value}`

mplungjan 06.08.2024 14:02

e.target.action = https://test.com/${inputBox.value}.html Это пример моего кода, он перенаправляет меня на https://TEST.com/${inputBox.value}.html?

Aiden Knight 06.08.2024 14:40

Хорошо, похоже на проблему с сервером. Попробуйте изменить его на e.preventDefault(); location = `https://test.com/${inputBox.value}.html`;

mplungjan 06.08.2024 14:46

@AidenKnight По какой причине ты удалил согласие? Я не смогу помочь вам, если вы не скажете мне, что не работает в соответствии с вашими ожиданиями.

mplungjan 07.08.2024 08:32

Я взял перерыв в работе за компьютером, чтобы провести немного времени с семьей, но это работает, спасибо.

Aiden Knight 08.08.2024 12:41

Другие вопросы по теме