【发布时间】:2014-07-02 17:33:10
【问题描述】:
我有一个用户可以提交问题的表单,我希望当用户点击添加按钮时,我希望他们添加的内容发布在下面的框中。所以说添加一些东西,x out the window 然后回来添加其他东西,他们之前添加的东西仍然存在。
这是我的小提琴 http://jsfiddle.net/grahamwalsh/rCB9V/
问题列表(html)
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Issue List</title>
<script src="Scripts/jquery-2.1.1.js"></script>
<script src="Scripts/knockout-3.1.0.js"></script>
<script src="Issuelist.js"></script>
<link type="text/css" rel="stylesheet" href="Issuelistcss.css" />
</head>
<body>
<div class='issuelist'>
<form data-bind="submit:addIssue">
Add Issue: <input type="text" data-bind='value:issueToAdd, valueUpdate: "afterkeydown"' />
<button type="submit" data-bind="enable: issueToAdd().length > 0">Add</button>
</form>
<p>Your Issues:</p>
<select multiple="multiple" data-bind="options:allIssues, selectedOptions:selectedIssues"> </select>
<div>
<button data-bind="click: removeSelected, enable: selectedIssues().length > 0">Remove</button>
<button data-bind="click: sortIssues, enable: allIssues().length > 1">Sort</button>
</div>
</div>
</body>
</html>
问题列表 (js)
$(document).ready(function(){
var Issuelist = function () {
this.issueToAdd = ko.observable("");
this.allIssues = ko.observableArray(["test"]);
this.selectedIssues = ko.observableArray(["test"]);
this.addIssue = function () {
if ((this.issueToAdd() != "") && (this.allIssues.indexOf(this.issueToAdd()) < 0))
this.allIssues.push(this.issueToAdd());
this.issueToAdd("");
};
this.removeSelected = function () {
this.allIssues.removeAll(this.selectedIssues());
this.selectedIssues([]);
};
this.sortIssues = function () {
this.allIssues.sort();
};
};
ko.applyBindings(new Issuelist());
});
问题列表css
body { font-family: arial; font-size: 14px; }
.issuelist { padding: 1em; background-color: #87CEEB; border: 1px solid #CCC; max-width: 655px; }
.issuelist input { font-family: Arial; }
.issuelist b { font-weight: bold; }
.issuelist p { margin-top: 0.9em; margin-bottom: 0.9em; }
.issuelist select[multiple] { width: 100%; height: 8em; }
.issuelist h2 { margin-top: 0.4em; }
【问题讨论】:
-
我认为您可能希望使用数据库来存储非易失性数据。
-
数据库将是解决这种情况的方法..
-
如果数据应该只呈现给当前用户(留在浏览器中,而不是通过 HTTP 传输),请查看 HTML5
localStorage或 Web SQL。如果数据应该提供给其他用户,您将需要一些服务器端处理和数据库存储。 -
Web Storage API (localStorage/sessionStorage) 不能满足您的需求吗?
-
本地存储见stackoverflow.com/questions/2010892/…,仅限客户端
标签: javascript jquery html http-post