#javascript #html
#javascript #HTML
Вопрос:
Итак, у меня есть эта html-форма:
<form>
<input type="text" placeholder="Equation" id="equation_input" onsubmit="return button_click()"/>
<input class = "search_button" type="submit" id="search" onclick="button_click()" value="Search"/>
</form>
И мне нужно взять значение, введенное пользователем при вводе уравнения, добавить его в начало URL-адреса, а затем перенаправить пользователя на этот вновь сформированный URL-адрес.
Я попробовал это в тегах моего скрипта:
function button_click() {
var url = `https://exampleurl.com?q=${document.getElementById('equation_input').value}`;
window.location.replace(url);
}
Я пробовал пару вещей, но я не уверен, что вызывает проблему, поэтому я точно не знаю, что попробовать.
Комментарии:
1. в чем проблема?
2. Я не знаю. Но мои кнопки просто перезагружают страницу вместо перенаправления пользователя. Idk, какая часть вызывает это.
3. Это потому, что вы не препятствуете отправке формы по умолчанию.
4. По-прежнему не имеет смысла, что вам нужно, когда вы можете использовать отправку по умолчанию вместо этого. Проведите некоторое исследование в
event.preventDefault()
Ответ №1:
Для этого не нужен какой-либо js. Это можно сделать с помощью формы отправки по умолчанию, указав входные данные и установив атрибуты действия и метода формы.
Обратите внимание, что у an <input>
нет submit
события, только a <form>
<form method="GET" action="https://exampleurl.com">
<input type="text" placeholder="Equation" id="equation_input" name="q" required/>
<input class="search_button" type="submit" id="search" value="Search" />
</form>
Комментарии:
1. Использование ввода в качестве метода отправки никогда не является лучшим решением.
<button>
все будет в порядке.2. @Spectric Предоставьте ссылку на это утверждение.
<input type="submit"/>
используется с момента создания форм. Я лично использую button, но оба действительны3. Использование
<input>
избыточно, так как вам нужно добавитьtype="submit"
.<button>
автоматически устанавливается на отправку при нажатии. Кроме того, если вы лично используете button, то почему вы поощряете использование ввода?4. @Spectric Хорошо, но это просто личные предпочтения
5. Вы совершенно правы. Я просто иногда придирчивый 😉