zoukankan      html  css  js  c++  java
  • js实现按钮添加和删除tr

    截图

     前端代码

     <form name="form1" method="post" action="pMmEquipMent2!saveMmEqiup.action" id="form1">
        <s:hidden key="vo.id"/>
        <s:hidden key="vo.dock"></s:hidden>
         <s:hidden key="act"/>
        <div>
            <table cellpadding="0" border="0" cellspacing="0" class="edittable" id="table1">
                <tbody id="tbody">
                    
                </tbody>
            </table>
            <br />
            <input type="button" value="增加" onclick="f_addTr()"></input>
        </div> 
        </form>
    //添加tr
    function f_addTr(){ 
                 var allTr = $("#table1 tbody tr");
                 if(allTr && allTr.length != 0 && allTr != null && allTr != ""){
                     var addEquip = $("tr:last:").children('td').eq(1).find("input[name=equipmentIds]");
                     var equipmentId = $(addEquip).val();
                         if(!equipmentId || equipmentId <= 0 || equipmentId == null || equipmentId==""){
                             alert("设备有空值请先选择");
                             return;
                      }
                 }
                    var html = '<tr>' 
                    /* +'<td style="padding-top: 10px;">设备类型:</td>'
                    +'<td><select style="120px" name="selectNames" class="selectName" onchange="addEquip(this)"></select>&nbsp;&nbsp;</td>' */
                    +'<td style="padding-top: 10px;">设备:</td>'
                    +'<td ><input type="text" name="equipNames" style="260px" class="equipAlias" onclick="f_addEquip(this)"><input type="hidden" name="equipmentIds">&nbsp;&nbsp;</td>'
                    +'<td>位号:</td>'
                    +'<td><input type="text" name="tags" style="150px" calss="tags"><input type="hidden" name="tagIds"></td>'
                    +'<td>&nbsp;&nbsp;<input type="button" value="删除" onclick="deleteTr(this)"></td>'
                    +'</tr>'
                  $("#tbody").append(html);
                  //f_addSelect();
                  var $equipAlias = $("tr:last:").children('td').eq(1).find("input[name=equipNames]");
                  f_addEquip($equipAlias);
              } 
    //设备自动完成功能
    function f_addEquip(obj){
                  //var equipAlias = $("tr:last:").children('td').eq(1).find("input[name=equipNames]");
                 var tr = $(obj).parent().parent();
                  var equipAlias = tr.children("td").eq(1).find("input[name=equipNames]");
                  var tags = tr.children("td").eq(3).find("input[name=tags]");
                   var tagIds = tr.children("td").eq(3).find("input[name=tagIds]");
                   var equipmentIds = tr.children("td").eq(1).find("input[name=equipmentIds]");
                 //var tags = $("tr:last:").children("td").eq(3).find("input[name=tags]");
                 //var tagIds = $("tr:last:").children("td").eq(3).find("input[name=tagIds]");
                 //var equipmentIds = $("tr:last:").children("td").eq(1).find("input[name=equipmentIds]");
                // $(".equipAlias").flushCache();
                 //$(equipAlias).val("");
                 //$(equipmentIds).val("");
                 //$(tags).val("");
                 //$(tagIds).val("");
                 $(equipAlias).flushCache();
                 $(tags).flushCache();
                 $(equipAlias).autocomplete("${ctx}/mm/pMmEquipMent2!findEquipAlias.action",{
                        max: 30,                //列表里的条目数
                        minChars: 0,            //自动完成激活之前填入的最小字符
                         260,             //提示的宽度,溢出隐藏
                        scrollHeight: 300,      //提示的高度,溢出显示滚动条
                        matchContains: true,    //包含匹配,就是data参数里的数据,是否只要包含文本框里的数据就显示
                        autoFill: false,        //自动填充
                        mustMatch:true,         //true:只会允许匹配的结果出现在输入框,默认为false
                        dataType: "json",
                        multiple: false,     //是否多个值(“,”隔开)
                        matchSubset:true,
                        extraParams: {
                            //equipTypeId: function(){return $(obj).val();},
                            equipAlias: function(){ return encodeURIComponent($(equipAlias).val()); }
                        },
                        parse: function(data) {
                            var datas = new Array();
                            if(data !=null && data.length > 0){
                                $.each(data, function(i,item) {
                                    var _data = {
                                            data:item,
                                            value:item.name,
                                            result:item.name
                                    }
                                    datas.push(_data);
                                })
                            }
                            return datas;
                        },
                        formatItem: function(row, i, max) {
                            return row.name;
                        },
                        formatResult: function(row) {
                            return row.name;
                        }
                        
                     }).result(function(e, item, value) {
                         //var equipmentIds = tr.children("td").eq(3).find("input[name=equipmentIds]");
                         $(equipmentIds).val(item.id);
                         f_selectTags(tags, tagIds, item.id);
                    });
            }
    //位号自动完成功能
    function  f_selectTags(tags, tagIds, equipMentId){
                //var equipmentIds = tr.children("td").eq(5).find("input[name=tags]");
                 $(tags).val("");
                 $(tagIds).val("");
                 //$(equipAlias).flushCache();
                 $(tags).flushCache();
                 $(tags).autocomplete("${ctx}/mm/pMmEquipMent2!findTags.action",{
                     max: 30,                //列表里的条目数
                     minChars: 0,            //自动完成激活之前填入的最小字符
                      182,             //提示的宽度,溢出隐藏
                     scrollHeight: 300,      //提示的高度,溢出显示滚动条
                     matchContains: true,    //包含匹配,就是data参数里的数据,是否只要包含文本框里的数据就显示
                     autoFill: false,        //自动填充
                     mustMatch:true,         //true:只会允许匹配的结果出现在输入框,默认为false
                     dataType: "json",
                     multiple: false,     //是否多个值(“,”隔开)
                     matchSubset:true,
                     extraParams: {
                         equipMentId: function(){return equipMentId;},
                         tagName: function(){ return encodeURIComponent($(tags).val()); }
                     },
                     parse: function(data) {
                         var datas = new Array();
                         if(data !=null && data.length > 0){
                             $.each(data, function(i,item) {
                                 var _data = {
                                         data:item,
                                         value:item.name,
                                         result:item.name
                                 }
                                 datas.push(_data);
                             })
                         }
                         return datas;
                     },
                     formatItem: function(row, i, max) {
                         return row.name;
                     },
                     formatResult: function(row) {
                         return row.name;
                     }
                     
                  }).result(function(e, item, value) {
                      //var equipmentIds = tr.children("td").eq(3).find("input[name=equipmentIds]");
                       $(tagIds).val(item.id);
                      //f_selectTags(tags, tagIds, item.id);
                 });
            }
    //删除对应tr
              function deleteTr(obj){
                 $(obj).parent().parent().parent()[0].removeChild($(obj).parent().parent()[0]);
              }

      

  • 相关阅读:
    30个php操作redis经常用法代码样例
    Android语音播报、后台播报、语音识别
    Gym 100733J Summer Wars 题解:灵活运用扫描线的思想
    如何运营一个软件微社区
    关于迭代测试的一些思考
    DirectUI界面编程(五)WindowImplBase的使用
    Zxing实现在线二维码生成程序
    Java二维码生成与解码工具Zxing使用
    DirectUI界面编程(四)界面布局详解
    软件开发中的资源管理
  • 原文地址:https://www.cnblogs.com/hnzkljq/p/12117909.html
Copyright © 2011-2022 走看看