javascript - 在 JavaScript 中更改 <input> 的 `list` 属性

标签 javascript html

Demo

尝试更改输入 ID:列表从 A 到 B,但没有更改。

我计划用 PHP 从 MySQL 创建许多数据列表,

选择公司名称,然后在下一个列表中查看他们的员工。

HTML:

change List:
<input type="text" id="List" list="A">
<br>
<br>
<input type="text" id="A" value="B">
<br>
<button onclick="change()">
  Change List
</button>

<datalist id="A">
  <option value="None">
    <option value="1">
      <option value="2">
</datalist>

<datalist id="B">
  <option value="3">
    <option value="4">
</datalist>

JavaScript:

function change() {
  console.log("Started");
  var x = document.getElementById('A').value;
  document.getElementById('List').list = x;

  var check = document.getElementById('List').list

  if (check === x) {
    console.log("Complete");
  } else {
    console.log("Failed");
  }
}

谢谢,它现在工作了。

Working

最佳答案

According to the Mozilla Developer Network docs , list属性是只读的,实际上返回对 DOM 元素的引用(如 <datalist> ):

list [Read only]

HTMLElement object: Returns the element pointed by the list attribute. The property may be null if no HTML element found in the same tree.

因此,您需要使用 setAttribute通过 id 设置列表, 然后使用 element.list.id检索 check 的正确值.

function change() {
  console.log("Started")
  var x = document.getElementById('A').value
  
  document.getElementById('List').setAttribute('list', x)

  var check = document.getElementById('List').list.id

  if (check === x) {
    console.log("Complete");
  } else {
    console.log("Failed");
  }
}
change List:
<input type="text" id="List" list="A">
<br>
<br>
<input type="text" id="A" value="B">
<br>
<button onclick="change()">
  Change List
</button>

<datalist id="A">
  <option value="None">
    <option value="1">
      <option value="2">
</datalist>

<datalist id="B">
  <option value="3">
    <option value="4">
</datalist>

关于javascript - 在 JavaScript 中更改 &lt;input&gt; 的 `list` 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43504686/

相关文章:

javascript - 如何向[]添加方法?

javascript - Angular Controller

javascript - 单击 jquery 添加属性 'checked'

html - Bootstrap 4 的响应式布局排序

Android WebView 不加载本地 HTML 文件

javascript - 测试 React 表单组件

javascript - 如何修复 "An unbalanced tree was written using document.write() causing data from the network to be reparsed"?

html - 路径未填充完整的 SVG 元素大小

php - 谷歌图表 + MySQL/json

python - 如何在 Python 中使用 Selenium 查找元素内部的元素?