Как сохранить ввод пользователя в переменную в html и js
Я делаю игру, и в начале она запрашивает ваше имя. Я хочу, чтобы это имя сохранялось как varible. У меня есть этот HTML-код:
<form id="form" onsubmit="return false;">
<input style=position:absolute;top:80%;left:5%;width:40%; type="text" id="userInput">
<input style=position:absolute;top:50%;left:5%;width:40%; type="submit" onclick="name()">
</form>
и это часть javascript:
function name()
{
var input = document.getElementById("userInput");
alert(input);
}
Ответы
Ответ 1
Это не работает, потому что name
является зарезервированным словом в JavaScript. Измените имя функции на что-то еще.
См. http://www.quackit.com/javascript/javascript_reserved_words.cfm
<form id="form" onsubmit="return false;">
<input style="position:absolute; top:80%; left:5%; width:40%;" type="text" id="userInput" />
<input style="position:absolute; top:50%; left:5%; width:40%;" type="submit" onclick="othername();" />
</form>
function othername() {
var input = document.getElementById("userInput").value;
alert(input);
}
Ответ 2
Во-первых, сделайте вашу разметку более переносимой/многоразовой. Я также установил тип кнопки на 'button'
вместо использования атрибута onsubmit
. Вы можете переключить атрибут type
для submit
если форма должна взаимодействовать с сервером.
<div class='wrapper'>
<form id='nameForm'>
<div class='form-uname'>
<label id='nameLable' for='nameField'>Create a username:</label>
<input id='nameField' type='text' maxlength='25'></input>
</div>
<div class='form-sub'>
<button id='subButton' type='button'>Print your name!</button>
</div>
</form>
<div>
<p id='result'></p></div>
</div>
Затем напишите общую функцию для извлечения имени пользователя в переменную. Он проверяет, содержит ли переменная, содержащая имя пользователя, как минимум три символа. Вы можете изменить это на любую постоянную, которую вы хотите.
function getUserName() {
var nameField = document.getElementById('nameField').value;
var result = document.getElementById('result');
if (nameField.length < 3) {
result.textContent = 'Username must contain at least 3 characters';
//alert('Username must contain at least 3 characters');
} else {
result.textContent = 'Your username is: ' + nameField;
//alert(nameField);
}
}
Затем я создал прослушиватель событий для кнопки. Обычно считается плохой практикой иметь встроенные вызовы js.
var subButton = document.getElementById('subButton');
subButton.addEventListener('click', getUserName, false);
Вот рабочая и слегка стилизованная демонстрация:
CodePen демонстрация этого ответа.
Ответ 3
Измените свой javascript на:
var input = document.getElementById('userInput').value;
Это приведет к тому, что значение, которое было введено в текстовое поле, а не объект DOM
Ответ 4
Как я использую на PHP и JavaScript:
<input type="hidden" id="CatId" value="<?php echo $categoryId; ?>">
Обновите JavaScript:
var categoryId = document.getElementById('CatId').value;
Ответ 5
Я нашел, что это работает лучше всего для меня https://jsfiddle.net/Lu92akv6/ [Я нашел, что это работает для меня, попробуйте эту скрипку] [1]
document.getElementById("btnmyNumber").addEventListener("click", myFunctionVar);
function myFunctionVar() {
var numberr = parseInt(document.getElementById("myNumber").value, 10);
// alert(numberr);
if ( numberr > 1) {
document.getElementById("minusE5").style.display = "none";
}}
<form onsubmit="return false;">
<input class="button button3" type="number" id="myNumber" value="" min="0" max="30">
<input type="submit" id="btnmyNumber">
</form>