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();
});