JS动态添加和删除行

实现页面动态添加和删除行效果如下:
这里写图片描述

主要实现包括页面和js部分
页面HTML
主要通过table来实现,html先写好模版。

 <table id="ruleTable">
                        <tr>
                            <td>
                                期数:<input type="text" name="period" class="easyui-numberbox" id="period" data-options="min:0,precision:0,required:false"/>
                            </td>
                            <td>
                                免息比:<input type="text" name="freePercent" value="100" disabled class="easyui-numberbox" id="freePercent" data-options="min:0,precision:2,required:false"/>%
                            </td>
                            <td>
                                <a href="javascript:void(0)"  onclick='addTr("ruleTable",-1)'>添加规则</a>
                            </td>
                            <td>
                                <a href="javascript:void(0)" onclick='delTr("ruleTable",this)'>删除规则</a>
                            </td>
                        </tr>
                    </table>

JS部分实现
js主要实现对页面已有的代码的模版进行添加和删除。
对页面table的jquery操作需要有一个简单的了解:

//添加规则
function addTr(table,row){
    let trhtml="<tr>\n" +
        "                            <td>\n" +
        "                                期数:<input type=\"text\" class=\"easyui-numberbox\" name=\"period\" id=\"period\" data-options=\"min:0,precision:0,required:false,missingMessage:'不能为空'\"/>\n" +
        "                            </td>\n" +
        "                            <td>\n" +
        "                                免息比:<input type=\"text\" class=\"easyui-numberbox\" value=\"100\" disabled name=\"freePercent\" id=\"freePercent\" data-options=\"min:0,precision:2,required:false,missingMessage:'不能为空'\"/>%\n" +
        "                            </td>\n" +
        "                            <td>\n" +
        "                                <a href=\"javascript:void(0)\"  onclick='addTr(\"ruleTable\",-1)'>添加规则</a>\n" +
        "                            </td>\n" +
        "                            <td>\n" +
        "                                <a href=\"javascript:void(0)\" onclick='delTr(\"ruleTable\",this)'>删除规则</a>\n" +
        "                            </td>\n" +
        "                        </tr>";

     //获取table最后一行 $("#tab tr:last")
     //获取table第一行 $("#tab tr").eq(0)
     //获取table倒数第二行 $("#tab tr").eq(-2)
     //这里是-1为最后一行,倒数第一行
    let $tr=$("#"+table+" tr").eq(row);

    // tr总行数
    if($tr.size()===0){
        $("#"+table+" tbody").html(trhtml);
        // alert("指定的table id或行数不存在!");
        // return;
    }else{
        $tr.after(trhtml);
    }
    $.parser.parse($('#'+table));
}


//删除规则
function delTr(table,$this){
    //如果只有一条就不能继续删了
    let $tr=$("#"+table+" tr");
    if($tr.size()===1){
        $.messager.alert("提示","最后一条了,不能再删啦!","info");
        return false;
    }
    $($this).parent().parent().remove();

}

提交页面获取table数据

 obj.find("#ruleTable").find("tr").each(function () {
                //遍历每一行
                let period=$(this).find("input[name='period']").val();
                let freePercent=$(this).find("input[name='freePercent']").val();
                let rule={};
                rule["period"]=period;
                rule["freePercent"]=freePercent;
                if(!period || !freePercent){

                }else{
                    ruleArray.push(rule);
                }

     });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值