Почему моя функция не возвращает строку, введенную пользователем - PullRequest
0 голосов
/ 17 марта 2019

Я пытаюсь, чтобы пользователь ввел строку или число на странице, нажал submit и попросил console.log напечатать только что введенную строку, однако, сколько бы я ни пытался, она не напечатает.

Я что-то здесь упускаю?(простите за отступ)

<html>
<head>
<body>

 <form>
    <input id="userInput" type="text">
    <input type="submit" id = "submit()">
</form>

<script>
function submit() {
var test = document.getElementById("userInput");
 return console.log(test);
}
</script>
</body>
</head>
</html>

Ответы [ 5 ]

1 голос
/ 17 марта 2019

Вы делаете несколько вещей неправильно. Просто прочитайте приведенный ниже код, я оставил вам пояснения к комментариям.

<html>
<head>
<body>
<form>
  <input id="userInput" type="text">
  <button type="button" id="submitBtn" onclick="submit()">Submit</button> // ID - can't be used for submitting a function
</form>      
<script>
function submit() {
  var test = document.getElementById("userInput");
  alert(test.value); // console.log() - is like a void function and it can't be returned
}
</script>
</body>
</head>
</html>
1 голос
/ 17 марта 2019

Этот код выдаст результат, как вы ожидаете. Вы не можете вернуть console.log в функцию возврата, чтобы получить значение, а также не использовать форму, чтобы он всегда искал действие в подобных случаях

function submit() {
var test = document.getElementById("userInput").value;
console.log(test);
return test;
}
<div>
    <input id="userInput" type="text">
    <button  onclick = "submit()"> Submit</button>
</div>
0 голосов
/ 17 марта 2019

Пожалуйста, проверьте код ниже. Я думаю, что это то, что вы хотите. Проблема была в подключении события

<form>
    <input id="userInput" type="text">
    <input id="myBtn" type="submit">
</form>

<script>
document.getElementById("myBtn").addEventListener("click", function() {
 var test = document.getElementById("userInput");
 console.log(test);
 return false;
});
</script>
0 голосов
/ 17 марта 2019

использовать атрибут Onclick для кнопки Отправить! а также тип ввода должен быть кнопкой, чтобы предотвратить обновление.

<form>
  <input id="userInput" type="text">
  <input type="button" onclick= "submit()">
</form>

в коде JavaScript добавьте свойство value.

var test = document.getElementById("userInput").value;
0 голосов
/ 17 марта 2019

Если вы посмотрите в консоль, то увидите, что она записывает ссылку на элемент , а не на введенное в нее значение.

Это потому, что ваша переменная test хранит ссылку на элемент.

var test = document.getElementById("userInput");

Вам нужно

var test = document.getElementById("userInput").value;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...