【问题标题】:datalist how to tell if input is one of the optionsdatalist 如何判断输入是否是选项之一
【发布时间】:2020-06-01 14:34:47
【问题描述】:

我想知道为什么我选择带有选择标签的 2,它在控制台中返回 true。但是每当我在数据列表中选择 2 时,它都会在控制台中返回 false。

简而言之,我需要数据列表返回 tru。我需要它是真的,这样当用户输入输入时,我可以确保用户输入了我想要的选项(下拉菜单选项之一)

function castvote() {
    var selected = document.getElementById('vote');
    console.log("Chrome" in selected);
}
  <input list="vote" onchange="castvote()" id="voteInput">
  <datalist id="vote" >
    <option value="Chrome">
  </datalist>

<label>Choose a browser from this list:
    <input id = "a" list="browsers" name="myBrowser" 
      style="width: 400px;" onclick="test()" /></label>
  <datalist id="browsers">
    <option value="Chrome">
    <option value="Firefox">
    <option value="Internet Explorer">
    <option value="Opera">
    <option value="Safari">
    <option value="Microsoft Edge">
  </datalist>

【问题讨论】:

  • 您能具体说明“datalist”的含义吗? HTML 元素?如果是这样,我建议将其更改为&lt;datalist&gt;,以使读者清楚。
  • 您到底想记录什么?你想在什么时候记录真/假?

标签: javascript html css


【解决方案1】:

你应该试试这个。 我只是将 (.children) 放在 getElementById() 处,以获取 datalist 的所有子项,并将 onChange() 函数放在输入标签处。

       <input list="vote" onchange="castvote()" id="voteInput">
        <datalist id="vote" >
            <option value="2">
            <option value="3">
            <option value="4">
            <option value="5">
            <option value="6">
        </datalist>

        <script>
        function castvote() {
            var datalist = document.getElementById('vote').children;
            console.log("2" in datalist);
        }
        </script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-22
    • 1970-01-01
    相关资源
    最近更新 更多