Kendo UI
jQuery + Kendo UI + MockJax + Knockout
HTML
<link rel="stylesheet" href="http://cdn.kendostatic.com/2013.1.319/styles/kendo.common.min.css">
<link rel="stylesheet" href="http://cdn.kendostatic.com/2013.1.319/styles/kendo.blueopal.min.css">
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://cdn.kendostatic.com/2013.1.319/js/kendo.all.min.js"></script>
<a class="k-button k-button-icontext k-add-button" href="#"><span class="k-icon k-add"></span>Add new record</a>
<div id="listView"></div>
<script type="text/x-kendo-tmpl" id="template">
<div>
<dl>
<dt>Name</dt> <dd>#:name#</dd>
<dt>Age</dt> <dd>#:age#</dd>
</dl>
</div>
</script>
<script type="text/x-kendo-tmpl" id="editTemplate">
<div>
<dl>
<dt>Age</dt>
<dd><input type="text" data-bind="value:age" data-role="numerictextbox" data-type="number" name="age" required="required" /></dd>
</dl>
<div>
<a class="k-button k-update-button" href="\\#"><span class="k-icon k-update"></span></a>
<a class="k-button k-cancel-button" href="\\#"><span class="k-icon k-cancel"></span></a>
</div>
</div>
</script>
<script type="text/x-kendo-tmpl" id="addTemplate">
<div>
<dl>
<dt>Name</dt>
<dd>value:name</dd>
<div>
<a class="k-button k-update-button" href="\\#"><span class="k-icon k-update"></span></a>
<a class="k-button k-cancel-button" href="\\#"><span class="k-icon k-cancel"></span></a>
</div>
</div>
</script>
JavaScript
var isEdit = true;
var listView = $("#listView").kendoListView({
dataSource: {
data: [{
id: 1,
name: "Jane Doe",
age: 47
}, {
id: 2,
name: "John Doe",
age: 50
}],
schema: {
model: {
id: "id",
fields: {
id: {
type: "number"
},
name: {
type: "string"
},
age: {
type: "number"
}
}
}
}
},
editTemplate: kendo.template($("#editTemplate").html()),
template: kendo.template($("#template").html()),
edit: function (e) {
if (isEdit) {
listView.editTemplate = kendo.template($("#editTemplate").html())
} else {
listView.editTemplate = kendo.template($("#addTemplate").html())
}
}
}).data("kendoListView");
$(".k-add-button").click(function (e) {
isEdit = false;
listView.add();
e.preventDefault();
});