如何 return 来自数据列表的结果而不出现 "undefined" 错误
How to return a result from datalist without getting "undefined" error
当从 datalist
中选择一个选项时,我希望所选选项出现在页面中,只需按回车键即可。我是初学者编码器。也许问题是 value
未定义。我应该如何定义它?
编辑:如果我指定值,例如 [5]
,我能够得到想要的结果,但是我不确定如何用变量切换 [5]
,比方说[i]
.
var input = document.getElementById("myInput");
input.addEventListener("keyup", function(event) {
event.preventDefault();
if (event.keyCode === 13) {
document.getElementById("myButton").click();
}
});
function testResults(input) {
var x = document.getElementById("myInput").options[5].innerHTML;
document.getElementById("test").innerHTML = x;
}
<input list="myInput" value="">
<button id="myButton" onClick="testResults(this.input)">submit</button>
<datalist id="myInput">
<option>Alabama</option>
<option>California</option>
<option>Hawaii</option>
<option>Indiana</option>
<option>Montana</option>
<option>Nevada</option>
<option>Vermont</option>
<option>Washington</option>
</datalist>
<p></p>
<div id="test">Selected option innerHTML goes here on keyCode === 13</div>
目前我已经做了一个改变,你的其他逻辑我还不清楚。
已添加 id="myInputId"
。
从方法 testResults()
中删除了 input
变量
var input = document.getElementById("myInputId");
input.addEventListener("keyup", function(event) {
event.preventDefault();
if (event.keyCode === 13) {
document.getElementById("myButton").click();
}
});
function testResults() {
/*var i = myInputId.options.indexOf(value);
var x = document.getElementById("myInput").options[i].innerHTML;
document.getElementById("test").innerHTML = x;*/
document.getElementById("test").innerHTML = input.value;
}
<input list="myInput" id="myInputId" value="">
<button id="myButton" onClick="testResults()">submit</button>
<datalist id="myInput">
<option>Alabama</option>
<option>California</option>
<option>Hawaii</option>
<option>Indiana</option>
<option>Montana</option>
<option>Nevada</option>
<option>Vermont</option>
<option>Washington</option>
</datalist>
<p></p>
<div id="test">Selected option innerHTML goes here on keyCode === 13</div>
当从 datalist
中选择一个选项时,我希望所选选项出现在页面中,只需按回车键即可。我是初学者编码器。也许问题是 value
未定义。我应该如何定义它?
编辑:如果我指定值,例如 [5]
,我能够得到想要的结果,但是我不确定如何用变量切换 [5]
,比方说[i]
.
var input = document.getElementById("myInput");
input.addEventListener("keyup", function(event) {
event.preventDefault();
if (event.keyCode === 13) {
document.getElementById("myButton").click();
}
});
function testResults(input) {
var x = document.getElementById("myInput").options[5].innerHTML;
document.getElementById("test").innerHTML = x;
}
<input list="myInput" value="">
<button id="myButton" onClick="testResults(this.input)">submit</button>
<datalist id="myInput">
<option>Alabama</option>
<option>California</option>
<option>Hawaii</option>
<option>Indiana</option>
<option>Montana</option>
<option>Nevada</option>
<option>Vermont</option>
<option>Washington</option>
</datalist>
<p></p>
<div id="test">Selected option innerHTML goes here on keyCode === 13</div>
目前我已经做了一个改变,你的其他逻辑我还不清楚。
已添加 id="myInputId"
。
从方法 testResults()
input
变量
var input = document.getElementById("myInputId");
input.addEventListener("keyup", function(event) {
event.preventDefault();
if (event.keyCode === 13) {
document.getElementById("myButton").click();
}
});
function testResults() {
/*var i = myInputId.options.indexOf(value);
var x = document.getElementById("myInput").options[i].innerHTML;
document.getElementById("test").innerHTML = x;*/
document.getElementById("test").innerHTML = input.value;
}
<input list="myInput" id="myInputId" value="">
<button id="myButton" onClick="testResults()">submit</button>
<datalist id="myInput">
<option>Alabama</option>
<option>California</option>
<option>Hawaii</option>
<option>Indiana</option>
<option>Montana</option>
<option>Nevada</option>
<option>Vermont</option>
<option>Washington</option>
</datalist>
<p></p>
<div id="test">Selected option innerHTML goes here on keyCode === 13</div>