Demonstration
Introduces the basic use of ax5ui-binder UI.

Support Array

Paste the following code into the head section of your site’s HTML.

<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.3.min.js"></script>
<script type="text/javascript" src="https://cdn.rawgit.com/ax5ui/ax5core/master/dist/ax5core.min.js"></script>
<script type="text/javascript" src="https://cdn.rawgit.com/ax5ui/ax5ui-binder/master/dist/ax5binder.min.js"></script>
HTML
<form class name="binder-form" onsubmit="return false;" style="border: 1px solid #ccc;padding: 10px;border-radius: 10px;">

    <h3>Familys   
        <button type="button" class="btn btn-default" id="ax-btn-list-add">ADD</button>
    </h3>

    <table class="table table-bordered">
        <colgroup>
            <col width="60"></col>
            <col width="150"></col>
            <col width="100"></col>
            <col width="100"></col>
            <col width="100"></col>
            <col></col>
            <col width="100"></col>
        </colgroup>
        <thead>
        <tr>
            <td></td>
            <td>A</td>
            <td>B</td>
            <td>C</td>
            <td>D</td>
            <td>E</td>
            <td>F</td>
        </tr>
        </thead>
        <tbody data-ax-repeat="list">
        <script type="text/html">
            <tr>
                <td align="center">

                    {{@i}}

                    {{#@first}}
                    <button class="btn btn-default btn-sm" type="button" data-ax-repeat-click="add">+</button>
                    {{/@first}}
                    {{^@first}}
                    <button class="btn btn-default btn-sm" type="button" data-ax-repeat-click="remove">-</button>
                    {{/@first}}
                </td>
                <td>
                    <input type="text" name="input-text" id="name-{{@i}}" data-ax-item-path="name" data-ax-validate="required"
                           class="form-control W60"/>
                </td>
                <td>
                    <label>
                        <input type="radio" name="radio-{{@i}}" data-ax-item-path="sex" value="M"/>
                        Male
                    </label>
                    <br/>
                    <label>
                        <input type="radio" name="radio-{{@i}}" data-ax-item-path="sex" value="F"/>
                        Female
                    </label>
                </td>
                <td>
                    <label>
                        <input type="checkbox" name="checkbox-{{@i}}" data-ax-item-path="hobby"
                               value="sport"/>
                        sport
                    </label>
                    <br/>
                    <label>
                        <input type="checkbox" name="checkbox-{{@i}}" data-ax-item-path="hobby"
                               value="movie"/>
                        movie
                    </label>
                    <br/>
                    <label>
                        <input type="checkbox" name="checkbox-{{@i}}" data-ax-item-path="hobby"
                               value="music"/>
                        music
                    </label>
                    <br/>
                    <label>
                        <input type="checkbox" name="checkbox-{{@i}}" data-ax-item-path="hobby"
                               value="play"/>
                        play
                    </label>
                    <br/>
                    <label>
                        <input type="checkbox" name="checkbox-{{@i}}" data-ax-item-path="hobby"
                               value="work"/>
                        work
                    </label>
                </td>
                <td>
                    <select name="select" data-ax-item-path="character" class="form-control">
                        <option value="wild">wild</option>
                        <option value="shiny">shiny</option>
                        <option value="nice">nice</option>
                    </select>


                    <input data-ax-item-path="qty" data-update-qty="{{@i}}" class="form-control"/>
                    <input data-ax-item-path="cost" data-update-qty="{{@i}}" class="form-control"/>
                    <span data-ax-item-path="price"></span>

                </td>
                <td>
                    {{#child}}
                    {{^__DELETED__}}
                    <input type="text" name="text" data-ax-item-path="child[{{@i}}].name" value=""
                           class="form-control input-sm" style="display: inline-block;width: 70px;"/>

                    {{#@first}}
                    <button class="btn btn-primary btn-sm" type="button" data-ax-repeat-child="child"
                            data-ax-repeat-child-c-index="{{@i}}" data-ax-repeat-click="add">+
                    </button>
                    {{/@first}}
                    {{^@first}}
                    <button class="btn btn-primary btn-sm" type="button" data-ax-repeat-child="child"
                            data-ax-repeat-child-c-index="{{@i}}" data-ax-repeat-click="remove">-
                    </button>
                    {{/@first}}

                    {{/__DELETED__}}
                    {{/child}}
                </td>
                <td>
                    <label>
                        <input type="checkbox" data-ax-item-path="useYn" value="Y"/>
                        Y/N
                    </label>
                </td>
            </tr>
        </script>
        </tbody>
    </table>
</form>


<div style="padding: 10px;">
    <button class="btn btn-default" data-btn="get-model">get model</button>
</div>

Familys   

A B C D E F
JS
<script type="text/javascript">
    $(function () {
        var myToast = new ax5.ui.toast();


        var formView = {
            model: new ax5.ui.binder(),
            initView: function () {
                var _this = this;

                this.model.setModel({
                    list: [
                        {
                            name: "thomas",
                            tel: "010-8881-9000",
                            email: "tom@axisj.com",
                            sex: "M",
                            //character: "wild",
                            //hobby: ["movie", "play"],
                            description: "",
                            child: [{name: "값1"}, {name: "값2"}],
                            qty: 10,
                            cost: 100
                        },
                        {
                            name: "thomas",
                            tel: "010-8881-9000",
                            email: "tom@axisj.com",
                            sex: "M",
                            //            character: "shiny",
                            //hobby: ["movie", "play"],
                            description: "",
                            child: [{name: "값1"}, {name: "값2"}],
                            qty: 20,
                            cost: 100
                        }
                    ]
                }, $(document["binder-form"]));

                /**
                 * this.model.onclick(objectPath, callback);
                 */
                this.model.onClick("list", function () {
                    // console.log(this);
                    var child_key = this.jquery.attr("data-ax-repeat-child"), child_index = this.jquery.attr("data-ax-repeat-child-c-index");
                    if (child_key) {
                        if (this.value == "add") {
                            _this.model.childAdd(this.repeat_path, this.item_index, child_key, {name: ""});
                        } else {
                            _this.model.childRemove(this.repeat_path, this.item_index, child_key, child_index);
                        }
                    } else if (this.value == "add") {
                        _this.addToList();
                    } else {
                        _this.remove(this.repeat_path, this.item_index);
                    }
                });

                $("#ax-btn-list-add").click(function () {
                    _this.addToList();
                });
            },
            addToList: function () {
                this.model.add("list", {name: "name:" + this.model.model.list.length, child: [{name: ""}]});
            },
            remove: function (repeat_path, item_index) {
                this.model.remove(repeat_path, item_index);
                //_this.print_json();
            },
            update: function (repeat_path, item_index, item) {
                /**
                 * repeat_item update
                 */
                this.model.update(repeat_path, item_index, item);
            }
        };

        formView.initView();

        $('[data-btn]').click(function () {
            var act = this.getAttribute("data-btn");
            switch (act) {
                case "get-model":
                    var data = formView.model.get();
                    console.log(data);
                    myToast.confirm(JSON.stringify(data));
                    break;
            }
        });
    });
</script>

AX5UI Package

'AX5UI' can be used with Bootstrap theme. The development of the distribution of the various UI plug-in. When you click the link to move to AX5UI index page.

Get AXBoot

AXBoot makes it easy to build web applications with Java & HTML5 Repeatable and noise development process are resolved by AXBoot.

Code licensed
MIT
Mantained by
Thomas Jang, Brant and Team AXISJ
Templete design by
Jorwrney Kim
Copyright
Opensource Group AXISJ - www.axisj.com
DNS
DNSEver