- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
好的,我正在尝试创建一个待办事项列表。我需要复选框,以及附加到每个任务的 ID --- 我需要保存复选框状态,以便我可以再次将其拉出..我想知道是否有一种方法可以在不添加另一个“保存”的情况下执行此操作键入按钮?单击该框后我可以保存它吗?我需要能够将状态保存到本地存储中,因此在刷新时,当表格显示在网站上时,它将包括复选框的当前状态/任务是否已完成...这就是我目前所拥有的,我确实做了一些研究,如果我完全拆掉我所拥有的东西,看起来有一种方法可以实现这一点,但我似乎无法让它正常工作,我试图弄清楚是否有一个做我需要做的事情的方法,而不需要完全重新开始并拆除所有东西......
JS:
var table = document.getElementById("tableBody");
var toDoArray = [];
buildTable();
function buildTable() {
var retrievedTaskObject = localStorage.getItem("task");
var parsedObject = JSON.parse(retrievedTaskObject);
for (i = 0; i < parsedObject.length; i++) {
toDoArray.push(getTaskObj(parsedObject[i].name, parsedObject[i].date));
addTaskToTable(parsedObject[i]);
}
}
function addTaskToTable(obj){
var row = table.insertRow(0);
var cellName = row.insertCell(0);
var cellDate = row.insertCell(1);
var cellId = row.insertCell(2);
var cellCheck = row.insertCell(3);
cellName.innerHTML= obj.name;
cellDate.innerHTML= obj.date;
var checkStuff = "<input type='checkbox'>";
cellCheck.innerHTML = checkStuff;
}
function submitForm(name,date) {
var addTaskName = document.getElementById("taskName").value;
var addTaskDate = document.getElementById("dateTask").value;
var taskSomething = getTaskObj(addTaskName,addTaskDate);
toDoArray.push(taskSomething);
addTaskToTable(taskSomething);
var storedArray = JSON.stringify(toDoArray);
localStorage.setItem("task",storedArray);
};
function getTaskObj(taskName,taskData){
var taskObject = {
name: taskName,
date: taskData,
};
return taskObject;
}
html:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="utf-8">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css">
<link rel="stylesheet" href="todostyle.css"/>
<title>To Do List</title>
</head>
<body>
<div class="container">
<h1 class="center">Welcome!</h1>
<h2 class="center">Here you can make your own to-do list.</h2>
<p>
<form>
<label>Task:</label>
<input id="taskName" type="text"/>
<label>Date Created:</label>
<input id="dateTask" type="date"/>
<button onclick="submitForm()" type="button" id="submit">Submit</button>
</form>
</p><p>
<table id="myTable" border="1"><thead>To Do List</thead>
<th> Task Name </th><th> Date Created </th><th> ID </th><th> Completed? </th><tbody id="tableBody"></tbody>
</table>
</p>
</div>
<script src="http://code.jquery.com/jquery-1.12.0.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script src="test.js"></script>
</body>
</html>
最佳答案
执行此操作的一种方法是通过 creating a <input type="checkbox"/>
element并附上onchange event handler当存储发生变化时,它将更新存储。
现在,为了知道要更新哪个任务,我们需要任务在数组中的位置(即索引)。我们将提供索引作为 addTaskToTable()
的第二个参数因为那是您构建表格行的时候。
// be safe: .getItem(key) will return null at the beginning,
// so have a fallback empty array if that happens
var toDoArray = JSON.parse(localStorage.getItem("task")) || [];
var table = document.getElementById("tableBody");
buildTable();
function buildTable() {
for (i = 0; i < toDoArray.length; i++) {
// pass index of current element as 2nd parameter
addTaskToTable(toDoArray[i], i);
}
}
// add index as 2nd argument
function addTaskToTable(task, i) {
var row = table.insertRow(0);
var cellName = row.insertCell(0);
var cellDate = row.insertCell(1);
var cellId = row.insertCell(2);
var cellCheck = row.insertCell(3);
// create checkbox
var checkbox = document.createElement('input');
cellName.innerHTML= task.name;
cellDate.innerHTML= task.date;
checkbox.type = 'checkbox';
checkbox.checked = task.completed;
checkbox.onchange = function () {
// set completed property when checkbox is changed
toDoArray[i].completed = this.checked;
// save localstorage
localStorage.setItem("task", JSON.stringify(toDoArray));
};
cellCheck.appendChild(checkbox);
}
function submitForm() {
var task = createTask(taskName.value, dateTask.value, false);
toDoArray.push(task);
// pass index of last element added
addTaskToTable(task, toDoArray.length - 1);
localStorage.setItem("task", JSON.stringify(toDoArray));
};
function createTask(name, date, completed) {
return {
name: name,
date: date,
completed: completed
};
}
关于javascript - 将复选框和 id 添加到表中?本地存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42323064/
我有一台 MySQL 服务器和一台 PostgreSQL 服务器。 需要从多个表中复制或重新插入一组数据 MySQL 流式传输/同步到 PostgreSQL 表。 这种复制可以基于时间(Sync)或事
如果两个表的 id 彼此相等,我尝试从一个表中获取数据。这是我使用的代码: SELECT id_to , email_to , name_to , status_to
我有一个 Excel 工作表。顶行对应于列名称,而连续的行每行代表一个条目。 如何将此 Excel 工作表转换为 SQL 表? 我使用的是 SQL Server 2005。 最佳答案 这取决于您使用哪
我想合并两个 Django 模型并创建一个模型。让我们假设我有第一个表表 A,其中包含一些列和数据。 Table A -------------- col1 col2 col3 col
我有两个表:table1,table2,如下所示 table1: id name 1 tamil 2 english 3 maths 4 science table2: p
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 1 年前。 Improve th
下面两个语句有什么区别? newTable = orginalTable 或 newTable.data(originalTable) 我怀疑 .data() 方法具有性能优势,因为它在标准 AX 中
我有一个表,我没有在其中显式定义主键,它并不是真正需要的功能......但是一位同事建议我添加一个列作为唯一主键以随着数据库的增长提高性能...... 谁能解释一下这是如何提高性能的? 没有使用索引(
如何将表“产品”中的产品记录与其不同表“图像”中的图像相关联? 我正在对产品 ID 使用自动增量。 我觉得不可能进行关联,因为产品 ID 是自动递增的,因此在插入期间不可用! 如何插入新产品,获取产品
我有一个 sql 表,其中包含关键字和出现次数,如下所示(尽管出现次数并不重要): ____________ dog | 3 | ____________ rat | 7 | ____
是否可以使用目标表中的LAST_INSERT_ID更新源表? INSERT INTO `target` SELECT `a`, `b` FROM `source` 目标表有一个自动增量键id,我想将其
我正在重建一个搜索查询,因为它在“我看到的”中变得多余,我想知道什么 (albums_artists, artists) ( ) does in join? is it for boosting pe
以下是我使用 mysqldump 备份数据库的开关: /usr/bin/mysqldump -u **** --password=**** --single-transaction --databas
我试图获取 MySQL 表中的所有行并将它们放入 HTML 表中: Exam ID Status Assigned Examiner
如何查询名为 photos 的表中的所有记录,并知道当前用户使用单个查询将哪些结果照片添加为书签? 这是我的表格: -- -- Table structure for table `photos` -
我的网站都在 InnoDB 表上运行,目前为止运行良好。现在我想知道在我的网站上实时发生了什么,所以我将每个页面浏览量(页面、引荐来源网址、IP、主机名等)存储在 InnoDB 表中。每秒大约有 10
我在想我会为 mysql 准备两个表。一个用于存储登录信息,另一个用于存储送货地址。这是传统方式还是所有内容都存储在一张表中? 对于两个表...有没有办法自动将表 A 的列复制到表 B,以便我可以引用
我不是程序员,我从这个表格中阅读了很多关于如何解决我的问题的内容,但我的搜索效果不好 我有两张 table 表 1:成员 id*| name | surname -------------------
我知道如何在 ASP.NET 中显示真实表,例如 public ActionResult Index() { var s = db.StaffInfoDBSet.ToList(); r
我正在尝试运行以下查询: "insert into visits set source = 'http://google.com' and country = 'en' and ref = '1234
我是一名优秀的程序员,十分优秀!