我对Javascript很陌生,我有一个问题似乎无法解决。我想从相同的输入文本字段获取用户输入,然后将它们放在一个数组中。第一个输入位于array[0]
位置的array[1]
位置,依此类推。我的设置如下,但我没有成功。
<!DOCTYPE html>
<html>
<head>
<title>Save Session</title>
</head>
<body>
<form>
<input type = "text" id = "testInput"></input>
<input type = "button" value = "Make Array" onClick = "makeArray()"> </input>
<input type = "button" value = "See Result" onClick = "seeResult()"></input>
</form>
<script type = "text/javascript">
function makeArray(){
var userInput = document.getElementById("testInput").value;
sessionArray = [];
for(i = 0; i < 5; i++){
sessionArray[i] = userInput;
break;
}
return sessionArray;
}
function seeResult(){
alert(makeArray())
}
</script>
</body>
答案 0 :(得分:1)
for循环不是这里应该使用的东西,因为你最终会得到5个相同的值。您可能希望用户能够提供5个不同的值(使用相同的输入),因此您必须确定何时添加这些值(在按钮单击或任何其他事件上)。
确定正确的事件后,您必须将输入值推送到全局数组变量中。如果要将数组限制为5个项目,请在推送任何值之前检查数组长度,以确保它的数量为&lt; 3&lt; 5。
请注意,我没有故意提供任何代码,因为您仍然需要学习一些编程基础知识...为您编写代码对您无能为力。
答案 1 :(得分:0)
我认为这就是你想要的。每次按下按钮,它都会获取输入的值并将其添加到sessionArray
中,然后清除输入。
我还移动了您在函数外部选择输入的代码。现在只输入一次输入,而不是每次运行该输入。
<script type = "text/javascript">
// Define vars
var sessionArray = [];
var inputEl = document.getElementById("testInput");
function makeArray(){
// Get input value
inputValue = inputEl.value;
// Add input value to array
sessionArray.push(inputValue);
// Empty input ready for next item
inputEl.value = '';
}
function seeResult(){
alert(sessionArray)
}
</script>
答案 2 :(得分:0)
HTML
<input type = "text" id = "testInput"></input>
<input type = "button" value = "Add Array" onclick = "addArray();"> </input>
<input type = "button" value = "See Result" onclick = "seeResult();"></input>
JS
var result=[];
function addArray(){
var userInput = document.getElementById("testInput").value;
result.push(userInput);
document.getElementById("testInput").value="";
}
function seeResult(){
alert("the result array contains: "+result+"\nResults will get removed");
result=[];//empty result array
}