Как получить значение текстового поля ввода с помощью JavaScript?
Я работаю над функцией поиска на JavaScript. Я хотел бы использовать форму, но она вызывает проблемы с другим элементом на моей странице. У меня есть следующее поле ввода текста:
<input name="searchTxt" type="text" maxlength="512" id="searchTxt" class="searchField"/>
Вот мой код на JavaScript:
<script type="text/javascript">
function searchURL(){
window.location = "http://www.myurl.com/search/" + (значение текстового поля);
}
</script>
Как мне получить значение из текстового поля в JavaScript?
5 ответ(ов)
Я бы создал переменную для хранения введенного значения следующим образом:
var input = document.getElementById("input_id").value;
А затем просто использовал бы эту переменную, чтобы добавить введенное значение к строке:
var result = "Ваша строка: " + input;
Вы можете использовать следующий код:
var input = document.getElementById("searchTxt");
function searchURL() {
window.location = "http://www.myurl.com/search/" + input.value;
}
И соответствующий HTML:
<input name="searchTxt" type="text" maxlength="512" id="searchTxt" class="searchField"/>
Уверен, что существуют более современные и эффективные способы реализации данной функциональности, но приведенный выше вариант хорошо работает во всех браузерах и требует минимальных знаний JavaScript для его создания, улучшения и редактирования.
Вы также можете обращаться к значениям элементов по их именам, например так: form_name.input_name.value;. В этом случае вы получите конкретное значение определенного input в заданной форме.
Вы можете получить значение поля ввода с помощью searchTxt.value.
<input name="searchTxt" type="text" maxlength="512" id="searchTxt" class="searchField"/>
<script type="text/javascript">
function searchURL(){
console.log(searchTxt.value);
// window.location = "http://www.myurl.com/search/" + searchTxt.value;
}
</script>
<!-- Кнопка для тестирования -->
<button class="search" onclick="searchURL()">Поиск</button>
Таким образом, при нажатии на кнопку будет выведено значение, введенное в поле, в консоль. Вы можете также раскомментировать строку с перенаправлением, чтобы отправлять запрос на сервер.
Если у вас есть form, и вы хотите получить значения после отправки, можно сделать так:
<form onsubmit="submitLoginForm(event)">
<input type="text" name="name">
<input type="password" name="password">
<input type="submit" value="Login">
</form>
<script type="text/javascript">
function submitLoginForm(event) {
event.preventDefault();
console.log(event.target['name'].value);
console.log(event.target['password'].value);
}
</script>
Преимущества такого подхода: например, если на вашей странице есть 2 form для ввода информации об отправителе и получателе.
Если вы не используете form, чтобы получить значения, то:
- Вам нужно будет установить два различных
id(илиtag, илиname...) для каждого поля, такие какsender-nameиreceiver-name,sender-addressиreceiver-addressи так далее. - Если вы зададите одинаковые значения для двух полей ввода, то после вызова
getElementsByName(илиgetElementsByTagName...) вам нужно будет помнить, что 0 или 1 соответствуетsenderилиreceiver. В дальнейшем, если вы измените порядок двухformв HTML, вам придется снова проверять этот код.
Если вы используете form, то можете использовать одни и те же имена, такие как name, address и так далее. Это значительно упрощает работу с данными, особенно когда у вас несколько форм на странице.
Как проверить, скрыт ли элемент в jQuery?
Получить координаты (X,Y) HTML-элемента
Как изменить класс элемента с помощью JavaScript?
Удаление всех дочерних элементов узла DOM в JavaScript
Создание нового DOM-элемента из HTML-строки с использованием встроенных методов DOM или Prototype