【问题标题】:How can I attach a datalist to input textbox dynamically?如何将数据列表动态附加到输入文本框?
【发布时间】:2014-08-15 01:44:58
【问题描述】:

我正在我的 javascript 中动态创建输入文本框。例如,一开始只有一个文本框。当用户单击 + 按钮时,会添加一个新文本框。现在,我想将数据列表附加到下一个文本框。我还将根据其他一些用户选择动态生成数据列表。我看到的所有 datalist 使用示例都像

但我想做类似的事情: newTextBox = document.createElement("input"); newList = document.createElement("datalist"); newTextBox.list=新列表; newList.options[0] = "choice1"; newList.options[1] = "choice2"; ...... ....

这可能吗?我该怎么做?

提前致谢。

【问题讨论】:

  • 在上一篇文章中我写过 - “我看到的所有关于 datalist 用法的例子都是这样的”,但我输入的例子并没有消失。在这里。

标签: javascript datalist


【解决方案1】:

使用 ajax 从您的数据库或服务器加载列表

$('#list-container').load("/lists/somelist.html", function() {
    alert("list loaded");
});

见:.load() | jQuery API Docs


示例:

<a id="list1-link">Show list 1</a>
<div id="list1-container" style="display:none;"></div>

<script type="text/javascript">
$("#list1-link").on("mouseover", function() {
    var pos = $(this).position();
    var width = $(this).outerWidth();
    $("#list1-container").load("/lists/list1.html", function() {
        $(this).css({
            position: "absolute",
            top: pos.top + "px",
            left: (pos.left + width) + "px"
        }).fadeIn();
    });
});
</script>

【讨论】:

  • 感谢您的回复。 2个问题-我之前的问题可能应该更清楚,如果是这样,请原谅。第一 - 如何将数据列表附加到“输入”元素?我无法理解使用 ajax 加载将如何解决这个问题。第二 - 是否可以在 javascript 中显示?我的应用程序几乎完成了,如果可能的话,我现在不想将新框架(如 ajax)拖入其中。非常感谢
  • 使用纯 JavaScript 可能会让您的生活变得非常困难。此外,使用 jQuery 的网站太多了,您的浏览器可能已经缓存了脚本,所以如果您使用 google CDN,您的用户应该不会遇到任何“拖拽”或额外的加载时间。
  • 至于附加数据列表,您可以按照我给您的示例中相同的方式执行此操作,不同之处在于您引用数据列表元素的 ID 而不是使用 DIV 元素。
  • 非常感谢奥兹。我会试试的。
  • 对不起,如果我很慢并且在不理解答案的情况下重复相同的问题。当我试图将其转移到脚本时,不知何故它似乎仍然没有给我答案。您建议: 显示列表 1 但我正在使用动态创建这些document.createElement("datalist") & document.createElement("input") 方法。更复杂的是,如果我分配像 --- object.id = myId 这样的 id,Chrome 浏览器似乎无法处理动态创建的对象的 document.getElementById(myId)
猜你喜欢
  • 1970-01-01
  • 2020-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-17
相关资源
最近更新 更多