如何使用 javascript 或 jquery 以表格式显示 JSON 对象
How to display JSON object in table format using javascript or jquery?
我有一组 JSON 对象,我想以表格格式显示,但我的输入字段很少。在表单字段中输入的值应在 Json 对象中更新,并应显示在现有表中。以下是代码。我无法更新表中的 JSON 对象。
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js">
</script>
</head>
<body>
<div id="wrap">
<header>
<h1>Task Tracker</h1>
<h4>v2.0</h4>
</header>
<div id="main">
<div id="left-side">
<h3>Create a Task</h3>
<form action="" method="post">
<div id="taskname" class="task-details">
<label>Name</label><br><input name="name" type="text">
</div>
<div id="taskdate" class="task-details">
<label>Date</label><br><input name="date" type="text">
</div>
<div id="assigned" class="task-details">
<label>Assigned To</label><br><input name="assigne" type="text">
</div>
<input type="submit" value="Submit">
</form>
</div>
<div id="right-side">
<h3>Existing Tasks</h3>
<div id="div1">
</div>
</div>
</div>
</div>
<script>
$.fn.serializeObject = function()
{
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
$(function() {
$('form').submit(function() {
var data= console.log(JSON.stringify($('form').serializeObject()));
return false;
obj.push("data");
});
var obj=[
{"name": "Task Name", "date": "12/01/2012", "assigned": "John Doe" },
{"name": "Task Name", "date": "12/02/2012", "assigned": "John Doe" },
{"name": "Task Name", "date": "12/03/2012", "assigned": "John Doe" },
{"name": "Task Name", "date": "12/04/2012", "assigned": "John Doe" },
{"name": "Task Name", "date": "12/05/2012", "assigned": "John Doe" },
{"name": "Task Name", "date": "12/06/2012", "assigned": "John Doe" },
{"name": "Task Name", "date": "12/07/2012", "assigned": "John Doe" }
]
var tbl=$("<table/>").attr("id","mytable");
$("#div1").append(tbl);
for(var i=0;i<obj.length;i++)
{
var tr="<tr>";
var td1="<td>"+obj[i]["name"]+"</td>";
var td2="<td>"+obj[i]["date"]+"</td>";
var td3="<td>"+obj[i]["assigned"]+"</td></tr>";
$("#mytable").append(tr+td1+td2+td3);
}
});
</script>
</body>
</html>
使用
e.preventDefault();
阻止表单提交操作。不要
stringify
serializeObject
否则它将push
数组obj
字符串在表中追加
tr
submit
操作
试试这个:
$.fn.serializeObject = function() {
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
$(function() {
$('form').submit(function(e) {
e.preventDefault();
var data = $('form').serializeObject();
var tr = "<tr>";
tr += "<td>" + data["name"] + "</td>";
tr += "<td>" + data["date"] + "</td>";
tr += "<td>" + data["assigned"] + "</td></tr>";
$("#mytable").append(tr);
obj.push(data);
this.reset();
});
var obj = [{
"name": "Task Name",
"date": "12/01/2012",
"assigned": "John Doe"
}, {
"name": "Task Name",
"date": "12/02/2012",
"assigned": "John Doe"
}, {
"name": "Task Name",
"date": "12/03/2012",
"assigned": "John Doe"
}, {
"name": "Task Name",
"date": "12/04/2012",
"assigned": "John Doe"
}, {
"name": "Task Name",
"date": "12/05/2012",
"assigned": "John Doe"
}, {
"name": "Task Name",
"date": "12/06/2012",
"assigned": "John Doe"
}, {
"name": "Task Name",
"date": "12/07/2012",
"assigned": "John Doe"
}];
var tbl = $("<table/>").attr("id", "mytable");
$("#div1").append(tbl);
var html = '';
for (var i = 0; i < obj.length; i++) {
html += "<tr>";
html += "<td>" + obj[i]["name"] + "</td>";
html += "<td>" + obj[i]["date"] + "</td>";
html += "<td>" + obj[i]["assigned"] + "</td></tr>";
}
$("#mytable").append(html);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="wrap">
<header>
<h1>Task Tracker</h1>
<h4>v2.0</h4>
</header>
<div id="main">
<div id="left-side">
<h3>Create a Task</h3>
<form action="" method="post">
<div id="taskname" class="task-details">
<label>Name</label>
<br>
<input name="name" type="text">
</div>
<div id="taskdate" class="task-details">
<label>Date</label>
<br>
<input name="date" type="date" type="text">
</div>
<div id="assigned" class="task-details">
<label>Assigned To</label>
<br>
<input name="assigned" type="text">
</div>
<input type="submit" value="Submit">
</form>
</div>
<div id="right-side">
<h3>Existing Tasks</h3>
<div id="div1">
</div>
</div>
</div>
</div>
在这里摆弄
只需更新您的提交处理程序,并更新 html 中的名称字段"已分配">
$('form').submit(function(e) {
e.preventDefault();
var data= $('form').serializeObject();
$("#mytable").append("<tr><td>"+data["name"]+"</td><td>"+data["date"]+"</td><td>"+data["assigned"]+"</td></tr>");
obj.push("data");
});
相关文章:
- HTML文本框,它接受电话号码,并以美国电话号码格式显示
- 输出文本不't以正确格式显示
- 如何在JavaScript中以天、dd/mm/yyyy格式显示昨天的日期
- 如何使用 angularjs 以表格格式显示 parse.com 的查询结果
- 用格式显示日期
- 转换&用javascript将mongodb的UTC格式显示为EST格式
- 循环多维数组并以 html 格式显示数据
- 以 HTML 格式显示计算结果 (javascript)
- 将一天中的时间保存为mongodb中的数字,但以人类格式显示(使用流星自动形成)
- 将文件读取到 blob 并以 JavaScript 格式显示
- Json - 日期未以正确的格式显示
- 在新选项卡中以可读格式显示 json
- 如何以 html/rich 格式显示邮件
- 如何使用 javascript 或 jquery 以表格式显示 JSON 对象
- 以水平格式而不是垂直格式显示由HTML / JavaScript生成的CSV文件
- UTC 时间不是以 24 小时格式显示的,并且在上午 12 点之后不正确
- 以12小时格式显示时间
- 以 js 格式显示 php 数组
- 如何以表格格式显示json数组
- 使用Rails在页面上以实时刻度的格式显示当前时间,并每秒更改一次