如何从数据列表返回结果而不会出现“未定义”错误

时间:2018-07-04 19:00:33

标签: javascript html html-datalist

datalist中选择一个选项后,我希望该选择的选项出现在页面中,只需单击Enter键即可。我是初学者。也许问题是value未定义。我该怎么定义?

编辑:如果我指定了值,例如[5],我就能得到理想的结果,但是我不确定如何用变量切换[5],例如{{ 1}}。

[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;
    }

1 个答案:

答案 0 :(得分:1)

我目前已经进行了一次更改,您的休息逻辑对我来说仍然不清楚。

添加了id="myInputId"。     

从方法input中删除了testResults()变量

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>