Css+JS模擬實現可編輯的表格


表格在未編輯編輯,需要定兩個不同的式。

比如未編輯是lable的式,兩有兩個括號[],表示表格可以編輯編輯中的表格表示成一個input框,可以入。

基本思路就是,在表格中直接放可輸入的input標簽,在未編輯候,利用css式,把input標簽模成不可編輯的lable式。

實現

CSS

        .edit-marker {
            position: relative;
        }

            .edit-marker:before {
                position: absolute;
                content: '[';
                top: 0px;
                left: 2px;
            }

            .edit-marker:after {
                position: absolute;
                content: ']';
                top: 0px;
                right: 2px;
            }

            .edit-marker input,
            .edit-marker select {
                border-color: transparent;
                box-shadow: none;
            }

                .edit-marker select.input-time {
                    -moz-appearance: none;
                    -webkit-appearance: none;
                    padding-left: 18px;
                }

                    .edit-marker select.input-time::-ms-expand {
                        display: none;
                    }

JS

    <script>
       $(function(){
        // 移除樣式用的JS
        $(".edit-marker input, .edit-marker select").on("focus",function(){
            $(this).closest(".edit-marker").attr("marker-container", true).removeClass("edit-marker");
        }).on("blur",function(){
           $(this).closest("[marker-container]").addClass("edit-marker").removeAttr("marker-container");
        });

       });
    </script>

HTML

 <table id="table" class="table table-bordered table-condensed">
            <thead>
                <tr>
                    <th>ID</th>
                    <th><span>Name</span></th>
                </tr>
            </thead>
            <tbody>

                <tr>
                    <td>input(td)</td>
                    <td class="edit-marker">
                        <input type="text" class="form-control" value="wang" />
                    </td>
                </tr>
                <tr>
                    <td>select(td)</td>
                    <td class="edit-marker">
                        <select class="form-control input-sm input-time ">
                            <option value="1">00:00</option>
                            <option value="2">00:10</option>
                        </select>
                    </td>
                </tr>
                <tr>
                    <td>select2(td)</td>
                    <td class="edit-marker">
                        <select class="form-control input-sm kyumucombo">
                            <option value=""></option>
                            <option value="0901">Item1</option>
                            <option value="0902">Item2</option>
                            <option value="0903">Item3</option>
                        </select>
                    </td>
                </tr>
            </tbody>
        </table>
※上面用到了bootstrap。使用上,只需在外圍的容器(tddiv都可以)上加上edit-marker類就行。

實現的效果如下

編輯

編輯

3.1 普通入框

3.2 下拉框(初期表示:沒有下拉箭,看起來完全和lable一

   

3.3 下拉框


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM