javascript - 从 Javascript/HTML 中动态创建的按钮读取值

标签 javascript html

我创建了一个虚拟键盘,并试图用按钮上显示的字母填充输入框。我有以下功能:

此函数接受一个字符并以该字符作为其值创建一个按钮:

function keyButton(char) {
  var btn = document.createElement("button"); //create button
  btn.innerText = char; //fill it with char
  btn.id = "btn";
  keyStroke()
  return btn;
}

此函数为所有字母创建一个按钮:

var keyList = "QWERTYUIOPASDFGHJKLZXCVBNM";
for (i in keyList)
{
  var button = keyButton(keyList[i]);
  document.body.appendChild(button)
}

这个函数就是问题所在,它应该从按钮中读取值并将其附加到输入框:

function keyStroke() {
  document.getElementById("searchBar").value += document.getElementById("btn").innerText;
}

输入框的 HTML 是这样的:

<input id="searchBar" class="inputBar" placeholder="Enter something" />

最佳答案

试试这个:

var keyList = "QWERTYUIOPASDFGHJKLZXCVBNM";

for (var i in keyList) {    //loop through letters in keyList
  var button = keyButton(keyList[i]);
  document.body.appendChild(button);
}

function keyButton(char) {
  var btn = document.createElement("button"); //create button
  btn.innerHTML = char; //fill it with char
  btn.onclick = function () { keyStroke(this); };
  return btn;
}

function keyStroke(b) {
  document.getElementById("searchBar").value += b.innerHTML;
}
<input id="searchBar" class="inputBar" placeholder="Enter something" />

关于javascript - 从 Javascript/HTML 中动态创建的按钮读取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41104185/

相关文章:

javascript - 插入 HTML 时添加逗号的字符串数组

javascript - Google Maps API - map 未加载

Javascript:反转 boolean 值不起作用

javascript - 如何设置一个带有计时器的循环,该循环发出 ajax 请求,直到收到响应

html - 在 CSS 中制作一个没有列表的下拉菜单

html - 沿对 Angular 线拆分为 3 个 div

javascript - 锁定 Google Apps 脚本执行直到文本被替换

javascript - this.element 的closest() 无法正常工作

html - 使 div 100% 浏览器窗口的宽度

javascript - 获取所有 xhr 请求