JSFiddle - React, Tailwind, and code Playground
by origineil
HTML
<script src="//cdnjs.cloudflare.com/ajax/libs/knockout.mapping/2.4.1/knockout.mapping.js"></script>
<div id="condition-template" type="text/html">
<div class="condition">
<select class="textbox1"
data-bind="options: entarea,
optionsText : 'displayName',
value: selectedArea " ></select>
<select class="textbox1"
data-bind="options: Selectedfields,
optionsText : 'fieldDisplayName',
value: selectedField "></select>
<select class="textbox1"
data-bind="options: Selectedcomparisons,
optionsText : 'comparsionDisplayName',
value: selectedComparison "></select>
<input class="textbox1" type="text" data-bind="value: value"></input>
<button data-bind='click: save'>Save to JSON</button>
<button data-bind='click: loadModel'>AddModel</button>
<textarea data-bind='value: lastSavedJson' rows='5' cols='60' > </textarea>
<inner type = "textarea" id="t_test"></inner>
</div>
JavaScript
function Condition() {
var self = this;
var sqlArea = function(sqlAreaId, displayName) {
this.displayName = ko.observable(displayName);
this.sqlAreaId = ko.observable(sqlAreaId);
};
var field = function(fieldId, fieldDisplayName, sqlAreaId, fieldType) {
this.fieldId = ko.observable(fieldId);
this.fieldDisplayName = ko.observable(fieldDisplayName);
this.sqlAreaId = ko.observable(sqlAreaId);
this.fieldType = ko.observable(fieldType);
};
var comparison = function(comparsionId, comparsionDisplayName, fieldType) {
this.comparsionId = ko.observable(comparsionId);
this.comparsionDisplayName = ko.observable(comparsionDisplayName);
this.fieldType = ko.observable(fieldType);
};
self.templateName = "condition-template";
self.entarea = ko.observableArray([new sqlArea(1, "Client"),
new sqlArea(2, "Order")]);
self.selectedArea = ko.observable();
self.fields = ko.observableArray([new field( 1, "Name", 1, 1),
new field( 2, "Address", 1, 1),
new field( 3, "Phone number", 1, 1),
new field( 4, "Manager", 1, 1),
new field( 5, "Type", 1, 2),
new field( 6, "Order number", 2, 2),
new field( 7, "Sum", 2, 2),
new field( 8, "Date", 2, 3)]);
self.selectedField = ko.observable();
self.comparisons = ko.observableArray([new comparison( 1,">=", 2),
new comparison( 2,">", 2),
new comparison( 3,"<=", 3),
new comparison( 4,"IN from date", 3),
new comparison( 5,"IN from string", 1)
]);
self.selectedComparison = ko.observable();
...