javascript - 从用户的文本框输入动态创建单选按钮
问题描述
我正在使用 javascript 和 HTML 创建一个待办事项列表,用户可以在其中将项目输入到文本框中,然后单击“添加”按钮,该按钮创建一个单选按钮,其中用户的项目作为标签。用户还可以删除、突出显示和排序列表中的所有项目,但现在我关心的是让“添加”按钮起作用。
我创建了一个名为 itemsList 的数组来跟踪用户在他们的待办事项列表中的所有项目。当用户添加有效项目时,我现在正在努力让一个单选按钮出现在待办事项列表中。一周前我刚开始学习 javascript,我对使用的不同术语和函数的数量感到非常不知所措,我希望能得到一些帮助或朝着正确的方向前进。
我找到了一个与我尝试创建的示例类似的示例,但该项目不应出现在菜单中,而应仅显示为旁边带有标签的单选按钮。
我也发现这有帮助,但我无法在用户输入的按钮旁边添加标签:https ://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_radio_create
代码:
let itemsList[];
function init(){
console.log("Loaded");
let button = document.getElementById("add").addEventListener("click", addItem);
button.onclick = buttonClicked();
let item = document.getElementById("item");
item.onblur = validate;
}
function addItem(){
console.log("validate");
let item = document.getElementById("item");
if(item.value.length < 1){
alert("You need to enter at least 1 character.");;
}else{
itemsList.push({name: item, light: false, checked: false));
}
}
function buttonClicked(){ //create radio button
var x = document.getElementById("list");
var radio = document.createElement("INPUT");
radio.text = document.getElementById("item").value;
radio.add(radio);
}
<html>
<head>
<title>To-Do List</title>
</head>
<body onload="init()">
<div><h1>To-Do List</h1></div><br />
<div>Enter item: <input type="text" id="item"></input><button type="button" id="add">Add Item</button></div>
<div id = "list"></div>
<div>
<button type="button" id="remove">Remove Items</button>
<button type="button" id="toggle">Toggle Highlight</button>
<button type="button" id="sort">Sort Items</button>
</div>
<script src="t2.js"></script>
</body>
</html>
解决方案
下面的函数创建一个带有标签的单选按钮。
function createRadioButton() {
var input = document.createElement("INPUT");
input.setAttribute("type", "radio");
input.setAttribute("id", "test");
var label = document.createElement("LABEL");
label.setAttribute("for", "test");
label.innerText="Testing";
document.body.appendChild(x);
document.body.appendChild(label);
}
JS代码中也有一些错误。我希望您在顶部的作业部分中意识到这一点,并将 JSON 推送到 addItem()
推荐阅读
- google-bigquery - 如何在 Big Query 控制台中禁用计划查询
- xamarin.forms - 将 IsVisible 绑定到 Xamarin 表单中的 bool 属性
- css - CSS边框半径和过滤灰度不一起工作
- lambda - Lambda 事件查询字符串参数未定义?需要配置什么?
- postgresql - 如何根据不同表的多列索引的匹配来更新表
- java - Android:AdapterView 选择项
- oracle - SQOOP 从 ORACLE 数据库中导入特定 Schema 中的所有表
- postgresql - 如何根据 PostgreSQL 11.0 中的特定过滤器从表中选择行
- python - 如何通过跳过DataFrame中不可用的日期来获取下面的Python DataFrame的三天高、低、关闭?
- javascript - 基于值的镜像无线电选择是否有效?