精华内容
下载资源
问答
  • <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,... 一款简洁实用的自适应PC手机端的jQuery可编辑表格代码,jQuery表格添加删除行数据代码,使用起来十分的方便。
  • 一款简洁实用的自适应PC手机端的jQuery可编辑表格代码,jQuery表格添加删除行数据代码,使用起来十分的方便。
  • 代码片段: 姓名 性别 年龄 电话 操作 <td colspan="5" class="danger"><button class="btn btn-primary btn-sm">增加</button></td> </table>
  • easyUI可编辑表格编辑器添加事件

    千次阅读 2017-06-16 16:05:39
    使用easyUI的可编辑表格时,可以为编辑器添加键盘事件处理,这样就可以直接通过键盘进行操作,大大提升编辑效率。比如说编辑完一行时,可以按下回车就自动添加新行而不用去点击添加行按钮,编辑到一半想取消...

    在使用easyUI的可编辑表格时,可以为编辑器添加键盘事件处理,这样就可以直接通过键盘进行操作,大大提升编辑效率。比如说在编辑完一行时,可以按下回车就自动添加新行而不用去点击添加行按钮,在编辑到一半想取消编辑时,可以按键盘的方向键↑从而取消编辑。
    为编辑器添加事件,有两种方式。
    方式一:通过api获取对应的编辑器jQuery对象,为该对象添加事件
    方式二:通过类选择器选中对应的编辑器,再为它添加事件(当前编辑行有一个class是其他行没有的)

    需要注意的是,方式一通过api获取编辑器的jQuery对象时,api是通过editor.target来获取的,但在1.5版本的easyUI中,这是获取不到真正的编辑器对象的,通过浏览器的开发者工具查看代码发现,每个编辑器大概都是这种结构

    <input type="text" class="datagrid-editable-input textbox-f" style="display: none;">
    <span class="textbox textbox-invalid" style="width: 322px; height: 24px;">
        <input id="_easyui_textbox_input2" type="text"  class="textbox-text validatebox-text validatebox-invalid textbox-prompt" autocomplete="off" tabindex="" placeholder="" style="text-align: start; margin: 0px; padding-top: 0px; padding-bottom: 0px; height: 22px; line-height: 22px; width: 320px;" title="">
        <input type="hidden" class="textbox-value" value=""></span>

    editor.target 获取到的实际上是<input type="text" class="datagrid-editable-input textbox-f" style="display: none;">而真正用于输入的对象是span标签里面第一个input,所以应该为这个input添加事件而不是editor.target。

    方式一代码:

    var editors = $("#keyEventGrid").datagrid("getEditors",index);
    for(var i=0; i<editors.length; i++){
            var editor = editors[i];
            $(editor.target.siblings("span").children("input"))
                    .on("keydown",function(e){
                            var code = e.keyCode || e.which;
                            if(code == 13){
                                addRow("keyEventGrid");//添加新行
                            }else if(code == 38){
                                cancelRow("keyEventGrid");//取消编辑行
                            }
                })
    }

    方式二:

    $(".datagrid-row-editing .textbox-text").on("keydown",function(e){
            var code = e.keyCode || e.which;
            if(code == 13){
                    addRow("keyEventGrid");
            }else if(code == 38){
                    cancelRow("keyEventGrid");
            }
    });

    完整示例代码

    <!DOCTYPE>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>可编辑表格编辑器自定义事件</title>
            <link rel="stylesheet" type="text/css" href="../bootstrap/css/bootstrap.css"/>
            <link rel="stylesheet" type="text/css" href="../easyui1.5/themes/bootstrap/easyui.css"/>
            <link rel="stylesheet" type="text/css" href="../easyui1.5/themes/icon.css"/>
            <script src="../easyui1.5/jquery.min.js" type="text/javascript" charset="utf-8"></script>
            <script src="../easyui1.5/jquery.easyui.min.js" type="text/javascript" charset="utf-8"></script>
            <script src="../easyui1.5/jquery.edatagrid.js" type="text/javascript" charset="utf-8"></script>
            <script src="../easyui1.5/locale/easyui-lang-zh_CN.js" type="text/javascript" charset="utf-8"></sctipr>
            <style type="text/css">
                /**
                 * 解决在编辑时看不到内容的问题,这是由于使用easyUI的bootstrap主题导致的
                 */
                .datagrid-row.datagrid-row-editing.datagrid-row-selected{
                    background: #F3F3F3;
                    color: #333333;
                }
            </style>
        </head>
        <body>
            <div class="container-fluid">
                <div class="row">
                    <div class="col-sm-12">
                        <table id="keyEventGrid" style="width: 100%;height: 400px;"></table>
                        <div id="gridToolbar" class="container-fluid">
                            <div class="row">
                                <div class="col-sm-12">
                                    <a class="btn btn-sm btn-primary pull-right" onclick="addRow('keyEventGrid')">增加</a>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
    
            <script>
                $(function(){
                    $("#keyEventGrid").edatagrid({
                        toolbar:"#gridToolbar",
                        singleSelect:true,
                        fitColumns:true,
                        columns:[[
                            {field:"userName",title:"用户名",width:80,eidtor:{type:"textbox",options:{required:true}}},
                            {field:"age",title:"年龄",width:40,editor:"numberbox",align:"right"},
                            {field:"cell",title:"手机",width:60,editor:{type:"textbox",options:{required:true}}},
                            {field:"qq",title:"QQ",width:60,editor:"textbox"}
                        ]],
                        onAdd:function(index,row){
                            //使第一个编辑器获取焦点
                            $(".datagrid-row-editing .textbox-text")[0].focus();
                            //使用方式一或方式二注册事件
                        },
                        onSave:function(index,row){
                            //在添加新行时,onSave事件会被触发执行
                            //可以在这里添加一个保存的方法,在添加新行时,将上一行编辑的内容保存到数据库
                            //也可以直接在edatagrid添加一个saveUrl属性,这样不用写保存方法,也可以保存,缺点是保存时只能将row数据传到后台而不能添加其他数据
                            //当然,每编辑一行就保存一行的做法可能不太好,可以不处理这个保存的事件,在工具栏上添加一个保存按钮,当编辑完所有行时,点击保存按钮一次性保存
                        }
                    });
                });
    
                function addRow(grid){
                    $("#"+grid).edatagrid("addRow");
                }
    
                function cancelRow(grid){
                    $("#"+grid).edatagrid("cancelRow");
                }
            </script>
    
        </body>
    </html>
    展开全文
  • easyui可编辑表格编辑器设置值

    千次阅读 2017-06-16 16:45:05
    假设有这样的场景,使用easyUI的可编辑表格时,有些内容是通过其中一个编辑器编辑完后到后台取数据,返回数据后插入到部分编辑器中

    假设有这样的场景,使用easyUI的可编辑表格时,有些内容是通过其中一个编辑器编辑完后到后台取数据,返回数据后插入到部分编辑器中,为编辑器设置值可以用以下的方法

    function setGridFieldsValue(gridID,rowIndex,fieldArr,rowData,focusField){
        //gridID 是表格的ID,rowIndex是当前编辑行的索引,fieldArr是要插入值的字段数组,rowData是要插入的数据(json对象),focusField是插入数据后,焦点在哪个字段上
        var editors = $("#"+gridID).datagrid("getEditors",rowIndex),
            editorLength = editors.length;
        for(var j=0; j<fieldArr.length; j++){
            for(var i=0; i<editorLength; i++){
                var ed = editors[i];
                if(ed.field == fieldArr[j]){
                    $(ed.target)[ed.type]("setValue",rowData[fieldArr[j]]);
                }else if(ed.field == focusField){
                    $(ed.target.siblings("span").children("input")).focus();
                }
            }
        }
        $("#"+gridID).datagrid('clearSelections');
    }

    完整示例代码

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>可编辑表格编辑器设置值</title>
            <link rel="stylesheet" type="text/css" href="../bootstrap/css/bootstrap.css"/>
            <link rel="stylesheet" type="text/css" href="../easyui1.5/themes/bootstrap/easyui.css"/>
            <link rel="stylesheet" type="text/css" href="../easyui1.5/themes/icon.css"/>
            <script src="../easyui1.5/jquery.min.js" type="text/javascript" charset="utf-8"></script>
            <script src="../easyui1.5/jquery.easyui.min.js" type="text/javascript" charset="utf-8"></script>
            <script src="../easyui1.5/jquery.edatagrid.js" type="text/javascript" charset="utf-8"></script>
            <script src="../easyui1.5/locale/easyui-lang-zh_CN.js" type="text/javascript" charset="utf-8"></script>
            <style type="text/css">
                /**
                 * 解决在编辑时看不到内容的问题,这是由于使用easyUI的bootstrap主题导致的
                 */
                .datagrid-row.datagrid-row-editing.datagrid-row-selected{
                    background: #F3F3F3;
                    color: #333333;
                }
            </style>
        </head>
        <body>
    
            <div class="container-fluid">
                <div class="row">
                    <div class="col-sm-12">
                        <table id="editorEventGrid" style="width: 100%;height: 400px;"></table>
                        <div id="gridToolbar" class="container-fluid">
                            <div class="row">
                                <div class="col-sm-12">
                                    <a class="btn btn-sm btn-primary pull-right" onclick="addRow()">增加</a>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
    
            <script type="text/javascript">
    
                var userData = [
                    {"uid":1,"username":"张三","age":20,"sex":0,"cell":"13076847475","birthday":"1990-01-01"},
                    {"uid":2,"username":"李四","age":30,"sex":1,"cell":"15876847478","birthday":"1990-02-02"},
                    {"uid":3,"username":"王五","age":40,"sex":0,"cell":"18976847479","birthday":"1990-03-03"}
                ]
    
                $(function(){
    
                    var rowEditingIndex=0;
                    $("#editorEventGrid").edatagrid({
                        singleSelect:true,
                        striped:true,
                        nowrap:true,
                        fitColumns:true,
                        loadMsg:"加载数据中...",
                        pagination:true,
                        pageNumber:1,
                        pageSize:30,
                        pageList:[30,40,50],
                        toolbar:"#gridToolbar",
                        columns:[[
                            {field:'uid',title:'姓名',width:80,formatter:function(value,row,index){return row.username},editor:{type:'combobox',options:{
                                required:true,
                                textField:'name',
                                valueField:'uid',
                                selectOnNavigation:false,
                                data:[
                                    {name:"张三",uid:1},
                                    {name:'李四',uid:2},
                                    {name:'王五',uid:3},
                                    {name:'王老五',uid:4}
                                ],
                                onChange:function(n,o){
                                    if(n){
                                        //正常情况下,应该到后台获取数据
                                        var obj = getObj(n);
                                        if(obj){
                                            setGridFieldsValue("editorEventGrid",rowEditingIndex,["age","sex","cell","birthday"],obj,"address");
                                        }
                                    }
                                }
                            }}},
                            {field:'age',title:'年龄',width:40,align:'right',editor:'numberbox'},
                            {field:'sex',title:'性别',width:40,formatter:function(value,row,index){return row.sexName},editor:{type:'combobox',options:{
                                textField:'text',
                                valueField:'value',
                                data:[
                                    {text:"男",value:0},
                                    {text:"女",value:1}
                                ]
                            }}},
                            {field:'cell',title:'手机',width:80,align:'center',editor:{type:'numberbox',options:{required:true}}},
                            {field:'address',title:'地址',width:150,editor:{type:"textbox",options:{required:true}}},
                            {field:'birthday',title:'生日',width:60,align:'center',editor:'datebox'}
                        ]],
                        onAdd:function(index,row){
                            rowEditingIndex = index;
                            //添加行时,让第一个编辑器获取焦点
                            $(".datagrid-row-editing .textbox-text")[0].focus();
                            //为编辑器添加键盘事件
                            var editors = $("#editorEventGrid").edatagrid("getEditors",index);
                            for(var i=0; i<editors.length; i++){
                                var editor = editors[i];
                                $(editor.target.siblings("span").children("input")).on("keydown",function(e){
                                    var code = e.keyCode || e.which;
                                    if(code == 13){//13是回车键
                                        addRow();
                                    }else if(code == 38){//38是方向↑键
                                        cancelRow();
                                    }
                                });
                            }
                      },
                      onEndEdit:endEditing
                    })
    
                });
    
                function addRow(){
                    $("#editorEventGrid").edatagrid("addRow");
                }
    
                function cancelRow(){
                    $("#editorEventGrid").edatagrid("cancelRow");
                }
    
                function endEditing(index,row){
                    var ed = $("#editorEventGrid").edatagrid("getEditor",{index:index,field:'uid'});
                    var ed2 = $("#editorEventGrid").edatagrid("getEditor",{index:index,field:'sex'});
                    row.username = $(ed.target).combobox("getText");
                    row.sexName = $(ed2.target).combobox("getText");
                }
    
                function setGridFieldsValue(gridID,rowIndex,fieldArr,rowData,focusField){
                    //gridID 是表格的ID,rowIndex是当前编辑行的索引,fieldArr是要插入值的字段数组,rowData是要插入的数据(json对象),focusField是插入数据后,焦点在哪个字段上
                    var editors = $("#"+gridID).datagrid("getEditors",rowIndex),
                        editorLength = editors.length;
                    for(var j=0; j<fieldArr.length; j++){
                        for(var i=0; i<editorLength; i++){
                            var ed = editors[i];
                            if(ed.field == fieldArr[j]){
                                $(ed.target)[ed.type]("setValue",rowData[fieldArr[j]]);
                            }else if(ed.field == focusField){
                                $(ed.target.siblings("span").children("input")).focus();
                            }
                        }
                    }
                }
    
    
                function getObj(uid){
                    for(var i=0; i<userData.length; i++){
                        if(userData[i].uid == uid){
                            return userData[i]
                        }
                    }
                }
    
            </script>
    
        </body>
    </html>
    
    展开全文
  • easyui实现可编辑表格

    千次阅读 2019-11-20 22:55:01
    1)、可编辑表格,可以编辑多条数据,之后一起提交给后端; 2)、只能有一个商家类型的账号,申请店铺时创建,此处不可以删除,只能修改分账比例; 3)、账号类型为下拉单选框; 4)、业主不需要输入手机号和分...

    前端能力比较差,所以记录下,方便以后翻阅。

    需求

    为小区店铺开发一个分账管理的功能,小区业主在店铺消费时返还消费金额一定比例的积分。要求如下:

    1)、可编辑表格,可以编辑多条数据,之后一起提交给后端;

    2)、只能有一个商家类型的账号,在申请店铺时创建,此处不可以删除,只能修改分账比例;

    3)、账号类型为下拉单选框;

    4)、业主不需要输入手机号和分账账号,直接将积分分配到某app上;

    5)、分账比例两位小数,总和为100%。

    实现

    1、入口

    <a href="#" name="deta" onclick="openBillManagementPage('+ rec.shopId + ');return false;">分账管理</a>

    2、页面

         <!-- 分账管理 -->
        <div id="editBillManagement" class="easyui-window" data-options="title:'分账管理',iconCls:'icon-edit',modal:true,collapsible:false,minimizable:false,closed:true"
            style="width: 820px; height: 450px; padding: 5px;">
            <div class="easyui-layout" data-options="fit:true">
                <!-- <input type="hidden" id ="edit_bill_shopId" name="shopId"/> -->
                <div data-options="region:'north',border:false" style="text-align: left; padding: 3px; height: 38px">
                    <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="addBillRow()">添加分账方</a>
                </div>
                <div data-options="region:'center',border:false" style="padding: 10px; background: #fff; border: 1px solid #ccc;">
                    <table id="billAccountGrid"></table>
                </div>
                 <div data-options="region:'south',border:false" style="text-align: right; padding: 5px 0; height: 40px">
                    <a class="easyui-linkbutton" data-options="iconCls:'icon-ok'" href="javascript:void(0)" 
                        onclick="javascript:billManagementSumbit()">提交</a>
                    <a class="easyui-linkbutton" data-options="iconCls:'icon-cancel'" href="javascript:void(0)"
                        onclick="javascript:$('#editBillManagement').window('close');">取消</a>
                </div>
            </div>
        </div>

     3、js

        var editRow = undefined;//定义编辑行
        //打开分账管理页面
        function openBillManagementPage(shopid) {
            $.ajax({
                type : "POST",
                dataType : "json",
                url : "${ctx}/merchant/getBillAccountType",
                cache : false,
                success : function(data) {
                    $('#billAccountGrid').datagrid({
                        url : '${ctx}/merchant/getBillAccountList?shopId=' + shopid,
                        width : 'auto',
                        height : 'auto',
                        singleSelect : true,
                        rownumbers : true,
                        pagination : true,
                        pageSize : 10,
                        pageList : [ 10, 15, 20 ],
                        pageNumber : 1,
                        fit : true,
                        frozenColumns : [ [
                            {field : 'ID',title : '操作',align : 'center',width : 100,
                                formatter : function(val, rec) {
                                    //$('#edit_bill_shopId').val(rec.shopId);
                                    var result = '';
                                    if('1' != rec.type){
                                        result += '<a href="#" name="delBillRow" onclick="delBillRow(this);return false;">删除</a>';
                                    }
                                   return result;
                                }
                            }
                            ] ],
                        columns : [ [
                            {field : 'accountId',title : '账号id',hidden:true},
                            {field : 'shopId',title : '店铺id',hidden:true},
                            {field : 'accountName',title : '账号名称',align : 'center',width : 100,editor:{type:'validatebox',options:{required: true}}},
                            {field : 'type',title : '账号类型',align : 'center',width : 80,
                                formatter:function typeDisplay(value) {
                                    if (value == 0) {//id为0,显示为空
                                        return;
                                    }
                                    if (value == 1) {//id为1,显示为商家(后端直接过滤,不返回商家选项,保证只会存在一个商家账号)
                                        return '商家';
                                    }
                                    for (var i = 0; i < data.length; i++) {//为了避免选完类型后页面数据显示为id
                                        if (data[i].id == value) {
                                            return data[i].text;
                                        }
                                    }
                                },editor:{type:'combobox',options:{data:data,valueField:"id",textField:"text",editable:false,required: true}}},
                            {field : 'telephone',title : '手机号',align : 'center',width : 100,editor:{type:'numberbox'}},
                            {field : 'account',title : '分账账号',align : 'center',width : 200,editor:{type:'validatebox'}},
                            {field : 'proportion',title : '分账比例(%)',align : 'center',editor:{type:'numberbox',options:{precision:2,required: true}}}
                            ] ],
                            onLoadSuccess : function(){
                                createDataGridColMenu('billAccountGrid','columnmenu');
                            },
                            onAfterEdit: function (rowIndex, rowData, changes) {
                                editRow = undefined;
                            },
                            onDblClickRow: function (rowIndex, rowData) {
                                if (editRow != undefined) {
                                    $("#billAccountGrid").datagrid('endEdit', editRow);
                                    editRow = undefined;
                                }
                                if (editRow == undefined) {
                                    $("#billAccountGrid").datagrid('beginEdit', rowIndex);
                                    editRow = rowIndex;
                                }
                            },
                            onClickRow: function (rowIndex, rowData) {
                                if (editRow != undefined) {
                                    $("#billAccountGrid").datagrid('endEdit', editRow);
                                }
                            }
                    });
                 },
                 error : function() {
                     $.messager.alert('异常提示',"异常错误,请联系管理员!", 'error');
                 } 
             });
            $('#editBillManagement').window('open');
        }
        //添加行
        function addBillRow() {
            //TODO 
            $("#billAccountGrid").datagrid('endEdit', editRow);
            var rows = $('#billAccountGrid').datagrid("getRows").length;
            $('#billAccountGrid').datagrid('insertRow',{
                index: rows,
                row: {}
            });
            $("#billAccountGrid").datagrid("beginEdit",rows);
            editRow = rows;
        }  
    
        //删除行
        function delBillRow(target) {
            $.messager.confirm('删除操作', '确定删除吗?', function(data) {
                if (data) {
                    var delIndex = getRowIndex(target);
                    $('#billAccountGrid').datagrid('deleteRow', delIndex);
                }
            });
        }
        
        function billManagementSumbit() {
            var rowNum = $('#billAccountGrid').datagrid("getRows").length;
            for(var i = 0; i <rowNum; i++) {//这个for循环是我不知道因为什么原因会导致的有一条新加的记录拿不到值,只关闭当前编辑行(editRow)不能解决问题,全部关闭编辑模式后刚好可以解决
                $("#billAccountGrid").datagrid('endEdit', i);
            }
            var billAccountList = $('#billAccountGrid').datagrid("getRows");//获取最终的页面数据
           
            var billPropertion = 0.00;//声明比例
            for(var i = 0; i <billAccountList.length; i++) {
                billAccountList[i].shopId =  billAccountList[0].shopId;//每条记录带上店铺id
                billPropertion = (billPropertion * 100 + billAccountList[i].proportion * 100) / 100 ;//计算比例的和
            }
            if(100 != billPropertion) {
                $.messager.alert('出错提示', '分账总比例不是100%', 'error');
                return;
            }
            $.ajax({
                type : "POST",
                contentType : "application/json",
                url : "${ctx}/merchant/editBillAccount",
                data: JSON.stringify(billAccountList),//后端直接使用list接收即可
                cache : false,
                success : function(response) {
                    var bok = response.resultFlag;
                    if (bok == "success") {
                        $.messager.alert('操作提示', response.msg, 'info');
                        $("#billAccountGrid").datagrid('reload');
                        //提交后不需要关闭表格窗口
                    } else {
                        $.messager.alert('出错提示', response.msg, 'error');
                    }
                },
                error : function() {
                    $.messager.alert('异常提示',"异常错误,请联系管理员!", 'error');
                } 
            });
        }
    
        function getRowIndex(target) {
            var tr = $(target).closest('tr.datagrid-row');
            return parseInt(tr.attr('datagrid-row-index'));
        } 

    很多功能放在后端做,比如:商家账号(除了比例)其他字段不可编辑;除业主外其他类型账号手机号和分账账号必填;原来分账信息的删除等。

    后端代码及逻辑直接省略。

     

     

    如果有写的不对的地方,请大家多多批评指正,非常感谢!

    展开全文
  • Vue封装的可编辑表格插件

    万次阅读 2018-01-03 13:56:11
    可任意合并表头,实现单元格编辑。 页面效果如图: 页面使用如下: &lt;template&gt; &lt;div&gt; &lt;v-table :datat = "tableData" :thlabel="thlabel" :...

    可任意合并表头,实现单元格编辑。

    页面效果如图:
    这里写图片描述
    页面使用如下:

    <template>
        <div>
            <v-table 
                :datat = "tableData" 
                :thlabel="thlabel"
                :isEdit="true">
            </v-table>
        </div>
    </template>
    
    <script>
        export default{
            data(){
                return{
                    tableData:[{'a':'1','b':'2','c':'3','d':'8'},{'a':'4','b':'5',c:'6',d:'9'}],
                    thlabel:[[{label:'测试1',prop:'a',rowspan:'2'},{label:'测试2'},{label:'测试3',colspan:'2'}],
                            [{prop:'c',label:'表头2'},{prop:'b',label:'表头3'},{prop:'d',label:'表头4'}]]
                }
            }
        }
    </script>

    目录结构如下:

    目录结构

    vtable.vue代码如下:

    <template id="vtable">  
        <table>
            <thead>
                <tr v-for="(i,index) in rownum">
                    <th v-for="label in thlabel[index]">{{label.label}}</th>
                </tr>
            </thead>
            <tbody>
                <tr v-for="data in datat">
                    <td v-for="key in labelprop" @click="tdEdit($event)"><input type="text" v-model="data[key]"/></td>
                </tr>
            </tbody>
        </table>
    </template>
    
    <script>
        export default{
            props:{
                datat:{
                    type:Array,
                    required:true
                },  
                thlabel:{//表头数组
                    type:Array,
                    required:true
                },
                isEdit:{
                    type:Boolean,
                    required:true
                }
            },
            data(){
                return{
                    datata:''
                }
            },
            computed:{
                rownum:function(){//表头行数
                    return this.thlabel.length;
                },
                labelprop:function(){//取出表头数据依次对应的字段key
                    let thlab = this.thlabel;
                    var ar = [];
                    for(let i=0;i<thlab.length;i++)
                        for(let j=0;j<thlab[i].length;j++){
                            for(var key in thlab[i][j]){
                                if(key == 'prop'){
                                    ar.push(thlab[i][j][key])
                                }
                            }
                        }
                    return ar;
                },
            },
            mounted:function(){
                this.$nextTick(function(){
                    $('td').attr('isEdit',this.isEdit);
                    var a = this.thlabel;
                    for(let i=0;i<a.length;i++)
                        for(let j=0;j<a[i].length;j++){
                            for(var key in a[i][j]){
                                if(key == 'rowspan'){
                                    $($('tr').eq(i).find('th').eq(j)).attr('rowspan',a[i][j][key]);
                                }else if(key == 'colspan'){
                                    $($('tr').eq(i).find('th').eq(j)).attr('colspan',a[i][j][key]);
                                }
                            }
                        }
                    }
                )
            },
            methods:{
                tdEdit:function(event){
                    var h = event.currentTarget;
                    if($(h).attr('isEdit')){
                        $(h).find('input').attr("readOnly",false);
                        $(h).addClass('tdclick').siblings().removeClass('tdclick');
                        $(h).addClass('tdclick').parent('tr').siblings().find('td').removeClass('tdclick');
                    }else{
                        $(h).find('input').attr("readOnly",true);
                    }
                }
            }   
        }
    </script>
    
    <style>
    @import './scss/vtable.css';
    </style>

    index.js代码如下:

    import Vue from 'vue'
    import vtable from './vtable/vtable.vue'
    import vpagination from './vpagination/vpagination.vue'
    const common = {//全局安装
        install:function(Vue){
            Vue.component('vTable',vtable);
            Vue.component('vPag',vpagination);
        }
    }
    export default common

    main.js中引入

    import common from './components/common/index.js'
    Vue.use(common)

    css样式代码:

    table {
      border: 1px solid #EBEEF5;
      height: 200px;
      width: 300px;
      text-align: center;
      margin-left: 40px; }
      table td {
        border: 1px solid #EBEEF5;
        position: relative;
        color: #606266; }
      table th {
        text-align: center;
        border: 1px solid #EBEEF5;
        background-color: #F5F7FA;
        color: #909D8F;
        line-height: 60px; }
    
    tr:hover {
      background-color: #F6F8FB; }
    .tdclick:after{
        content: ' ';
        position: absolute;
        display: block;
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
        border: 1px solid blue;
        pointer-events: none;
    }
    input{
        display: block;
        width: 100%;
        height: 100%;
        text-align: center;
      border: none;
      outline: none;
    }
    /*# sourceMappingURL=vtable.css.map */

    如有错误或可改进的地方,请指正!

    展开全文
  • jQuery表格编辑添加删除行代码是一款适用于手机端的编辑表格代码。
  • 查看css,可编辑表格的css如下,td的width为99,.datagrid-editable类使左右的padding都为0   查看表头的css,td的width为107,左右padding为4,width为107=99+8   于是想到解决办法,强制修改可编辑表格...
  • 刚刚搜了一下为什么手机端的word文本或EXCET表格从电脑传到手机上格式就乱了,然后看到本站对这个问题没有过解释,为了方便大家,我把回答放在这里吧! 原因如下: 1、手机里没有下载查看EXCET或word的类型软件 2、...
  • {field: 'userPhone', title: '注册手机号', width: 150}, {field: 'userEmail', title: '注册邮箱号', width: 150}, {field: 'role', title: '角色', width: 100}, {field: 'userProvince', title: '所属省份',...
  • Table表格部分 &amp;lt;template&amp;gt; &amp;lt;el-table :data=&quot;tableData&quot; style=&quot;width: 100%&quot;&amp;gt; &amp;lt;el-table-column label=&...
  • jQuery表格编辑添加删除行代码是一款适用于手机端的编辑表格代码。
  • 但是很多编辑器出来的网页都是电脑适配的,在手机上格式混乱。 我想要一个能在手机的webview适配的。专门做手机网页的富文本编辑器,求推荐。 现在给电脑网页用的富文本编辑器很多,百度的UEditor等等。但在手机...
  • jQuery+PHP实现实时编辑表格字段内容

    千次阅读 2011-01-20 08:46:00
    本例中,我们会通过jQuery实现单击将一个文本信息变为可编辑的表单,你可以对文本内容进行编辑,然后点击“确定”按钮,新的内容将发送到后台PHP程序处理,并保存到数据库;当点击“取消”按钮,则页面恢复到初始...
  • 本文讨论了csdn markdown编辑表格使用说明及不能调整宽度等问题处理。我们可以通过使用markdown编辑器直接插入html片段,比如&lt;table&gt;代替编辑表格,或根据css计算列宽原理实现表格列宽调整。...
  • react在线编辑Excel表格

    2020-12-01 17:32:15
    效果如上图, 引用:SpreadJS 下载 react例子 运行后如图
  • Markdown编辑器:表格

    2019-05-23 13:16:54
    手机 $12 导管 $1 Column 1 Column 2 centered 文本居中 right-aligned 文本居右 项目 | Value [标题,字体默认加粗] -------- | ----- [单元格长度默认为该列最长文本长度,加空格和文本位置处的横杠...
  • 3、 新行编辑表格组件 JVXETable 推出,更强大的性能、支持灵活自定义组件,支持各种复杂业务场景,支持各种复杂布局,轻松满足ERP项目复杂布局要求、提供各种复杂布局场景示例。 4、Token安全漏洞严重问题解决 ...
  • layui数据表格checkbox编辑的时候选中

    千次阅读 2018-08-23 16:51:30
    在编辑的时候,比如说一次活动,有很多参与人,编辑这次活动的时候,参与人以弹窗的形式以layui table展示,这需要参与人勾选中,即所谓的数据回显。 以下代码实现了编辑的时候回显,如果是新增的时候,ids为空数组...
  • 教你如何邮箱插入表格,相信很多人发邮箱的时候,有些表格想醒目的给收件人看, 截图插入图片,使用电脑确实没有什么问题,但在手机邮箱软件可能会看不到!
  • vcf编辑器(用于电脑编辑手机电话本),可以上传excel表格、outlook通信录等
  • 很多时候我们需要用到PDF文件中的Excel表格,但是PDF文件有不可编辑性,所以想提取PDF文件中的Excel表格还是需要一番功夫的,其实大家可以试试用手机里的文件转换工具。今天小编就介绍一个简单的方法给大家。 准备...
  • Excel表格编辑包括很多方面,表格的格式化是表格编辑中对表格外观影响最大的一个方面。表格格式化的方法有很多,灵活应用这些美化手段,可以让你的表格与众不同。
  • 最近涉及到数据库的操作,要察看...今天突然又发现,在手机上早就已经支持可以直接看数据库,对数据库进行管理了。最早是这个网址发现的:http://www.iteye.com/topic/1117930。然后就去看了看,再看这个网址:http
  • 如何快速将线下表格数据线

    千次阅读 2018-11-06 11:52:00
    这里主要分享,Web 开发中线上表格的几个前端框架的介绍及使用,其中包括: Tabledit :针对普通表格,快速实现编辑及删除的工作; Bootstrap-Table:相对定制化的一个 Bootstrap 线上表格框架,其功能较全面; ...
  • 找到一篇关于Sqlite的好文章,擅自保存下来,希望作者不要怪罪。。 ... 最近涉及到数据库的操作,要察看手机数据库中的表是否创建成功,表中的信息是否插入成功了,因此,如何...今天突然又发现,在手机上早就已
  • Bootstrap的表格禁止编辑功能

    千次阅读 2018-05-21 21:23:40
    客户名字 <span class="input-xlarge uneditable-input">Some value here 头像 性别 手机号码 ...父级加个 ... 这样就只能显示内容而不能编辑内容!

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,918
精华内容 17,167
关键字:

如何在手机上编辑表格