【JavaScript】checkBox的多选行<tr>信息获取

页面的列表table显示(后台model.addAttribute("page", page);传来page信息,page通过foreach标签迭代展示表格数据):

<!-- CRUD按钮区域 -->
    <div class="page-content">
        <!-- /.page-header -->
        <div class="row">
            <div class="col-xs-6" style="margin-top: 3px;">
                <button style="display: none;" class="btn_new btn-primary btn-default btn-bold md-trigger" data-modal="modal-2">新增</button>
                <button style="display: none;" class="btn_new btn-primary btn-default btn-bold md-trigger" onclick="edit()" data-modal="modal-3">编辑</button>
                <button style="display: none;" class="btn_new btn-primary btn-default btn-bold" onclick="batchDelete()">删除</button>
                <button class="btn_new btn-primary btn-default btn-bold md-trigger" data-modal="modal-1">查询</button>
                
                <button class="btn_new btn-primary btn-default btn-bold" onclick="uniCar()">提总组车</button>
                
            </div>
            <div class="col-xs-6" style="margin-top: 5px;float:right;">
                <div class="dataTables_paginate paging_simple_numbers" id="sample-table-2_paginate">
                    <ul class="pagination">
                        <%@include file="commonPager.jsp"%>
                    </ul>
                </div>
            </div>
        </div>
    </div>

<!-- -----------------------------------------------------------------------------列表显示区域------------------------------------------------------------------------------------------ -->

<!-- 列表显示区域 -->
    <div class="hr hr-18 dotted"></div>
    <div class="row">
        <div class="col-xs-12">
            <div class="row">
                <div class="col-xs-12">
                    <div id="chenkbox">
                    <table id="sample-table-2" class="table table-bordered">
                            <thead class="fixedHeader">
                                <tr>
                                    <td class="tc min-10">选择</td>
                                    <td class="tc min-18" sort="int"><span>序号</span><div class="ww"></div></td>
                                    <td class="tc min-24" sort="string"><span>商品编码</span><div class="ww"></div></td>
                                    <td class="tc min-24" sort="string"><span>商品条码</span><div class="ww"></div></td>
                                    <td class="tc min-24" sort="string"><span>商品名称</span><div class="ww"></div></td>
                                    <td class="tc min-24" sort="int"><span>商品总数</span><div class="ww"></div></td>
                                    
                                    <td class="tc min-12" sort="string" style="display:none"><span>仓库</span><div class="ww"></div></td>
                                </tr>
                            </thead>
                                <tbody class="scrollContent" id="tbodyId">
                                    <c:forEach items="${page.results}" varStatus="status"  var="single">
                                        <tr>
                                            <td class="min-10 td_center">
                                                <label class="position-relative">
                                                    <input type="checkbox" class="ace" value="${single.id}" id="checkbox" name="checkbox" /> <span class="lbl"></span>
                                                </label>
                                            </td>
                                            <td class="min-18 td_center" id="one">${status.index+1}</td>
                                            <td class="min-24 td_center" id="two">${single.itemnumber}</td>
                                            <td class="min-24 td_center" id="three">${single.displayitemnumber}</td>
                                            <td class="min-24 td_center" id="four">${single.description}</td>
                                            <td class="min-24 td_center" id="five">${single.cnt}</td>
                                            
                                            <td class="min-12 td_center" style="display:none" id="six">${single.whid}</td>
                                        
                                        </tr>
                                    </c:forEach>
                                </tbody>
                            </table>
                    </div>
                </div>
            </div>
        </div>
    </div>

 

 

效果如下:

 

 

当勾选选择框(多选)以后,点击提总组车,需要把勾选行的所有商品编码,商品条码等信息全部传到后台页面,js代码如下:

 

function uniCar(){
    
    var tr= getCheckBoxs('checkbox');
    if (tr.length == 0) {
        SimplePop.alert('未选择要提总组车的信息!');
        return false;
    }
    
    var checkcodes = '';
    var object = '';
    var $tr;

    $("#tbodyId input[type='checkbox']").each(function(i,e){
        checked = $(this).prop("checked");
        if(checked){
            $tr = $(this).parent().parent().parent();
            object += $tr.find("#two").text()+","+$tr.find("#three").text()+","+$tr.find("#four").text()+","+$tr.find("#six").text()+":";
        }
    });
    
    $.ajax({
        url:"uniCar",
        data:{
            'object':object,
        },
        dataType:"json",
        success:function(r){
            if(r.code == '000000'){
                /* if(confirm("执行成功!")){
                    document.location.href = "getOrderTasksPage?"+_csrfName+"="+_csrfValue;
                } */
                SimplePop.confirm("执行成功!", {
                    confirm:function(){
                    document.location.href = "getOrderTasksPage?"+_csrfName+"="+_csrfValue;}
                })
            }else{
                SimplePop.alert("执行失败");
            }
        },
        error:function(r){
            SimplePop.alert("执行失败", r.msg);
        }
    })
}

 

后台controller接收的代码如下:

/**
     *提总组车执行
     * @param bean
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/uniCar" , method = {RequestMethod.GET , RequestMethod.POST })
    @ResponseBody
    public Map<String,Object> uniCar(@RequestParam("object") String object) throws Exception{
        Map<String,Object> map = new HashMap<String,Object>();
        
        try {
            int res = orderTasksConsumer.uniCar(object);
    
            if(res > 0){
                map.put(ItemContants.CODE, ItemContants.SUCCESS_CODE);
                map.put(ItemContants.MESSAGE, ItemContants.SUCCESS_MESSAGE);
            }else{
                map.put(ItemContants.CODE, ItemContants.ERROR_UPDATE_CODE);
                map.put(ItemContants.MESSAGE, ItemContants.ERROR_UPDATE_MSG);
            }
        } catch (Exception e) {
            e.printStackTrace();
            map.put(ItemContants.CODE, ItemContants.ERROR_UPDATE_CODE);
            map.put(ItemContants.MESSAGE, ItemContants.ERROR_UPDATE_MESSAGE);
        }
        return map;
    }

后台consumer代码如下:(将传过来的string字符串以连接符:分解,得到的String[] object里面存的是每行tr的信息,每个tr包含该行的所有属性信息,由逗号“,”连接,在下一层service分解)

@Transactional(readOnly = false,rollbackFor = Exception.class)
    public int uniCar(String objects) throws ScnException {
        String[] object = objects.split(":");
        try {
            for(int i = 0; i < object.length; i++){
                String kid = object[i];
                orderTasksService.uniCar(kid);    
            }
            return 1;
            
        } catch (Exception e) {
            ScnException exp = new ScnException(e);
            exp.setErrorCode(ItemContants.ERROR_UPDATE_CODE);
            exp.setErrorMsg(ItemContants.ERROR_UPDATE_MESSAGE);
            throw exp;
        }
    }

 

后台service代码如下:

public void uniCar(String bean) throws ScnException {
        
        String[] kid = bean.split(",");
        
        Map<String,Object> reqMap = new HashMap<String, Object>();
        reqMap.put("itemnumber",kid[0]);
        reqMap.put("displayitemnumber",kid[1]);
        reqMap.put("description",kid[2]);
        reqMap.put("whid",kid[3]);
        
        try {
            orderTasksDao.updateSpOrderTasks(reqMap);
            orderTasksDao.updateSpOrderMain(reqMap);
            orderTasksDao.updateSpPickedDetail(reqMap);
        } catch (Exception e) {
            ScnException exp = new ScnException(e);
            exp.setErrorCode(ItemContants.ERROR_UPDATE_CODE);
            exp.setErrorMsg(ItemContants.ERROR_UPDATE_MESSAGE);
            throw exp;
        }
    }

 

如果是只选择每行的id信息传到后台可以这么写

(以选择每行的id传到后台用来删除为例,注意在jsp页面,checkbox的value里面保存了id信息,在jsp初始化显示表格数据的时候就要如下设置)

<input type="checkbox" class="ace" value="${single.id}" id="checkbox" name="checkbox" /> <span class="lbl"></span>

-------------------下面是通过获取id删除的js

function batchDelete() {
    SimplePop.confirm("确认删除?", {
        type: "error",
        confirm:function(){
            var serialNumcodes = '';
            var count = 0;
            $("#serialNum input[type='checkbox']").each(function(i,e){
                var checked = $(this).prop("checked");
                if(checked){
                    serialNumcodes += $(this).val()+",";
                    count++;
                }
            });
            if(serialNumcodes == ''){
                SimplePop.alert('未选择要批处理的信息!');
                return false;
            }
            
            $.ajax({
                url : "deleteSerialNum",
                data : {'serialNumcodes':serialNumcodes},
                type : "get",
                error : function(msg) { // 若Ajax处理失败后返回的信息
                    SimplePop.alert('删除失败。。。');                        
                },
                success : function(data) {// ajax返回的数据
                    var searchParams = getSearchParams("search");
                    var url = "getSerialNumPage?"+_csrfName+"="+_csrfValue;
                    goBackList(url,searchParams,"POST");
                }
            });
        }
    });
} 

上面js代码中的

getSearchParams("search");和
goBackList(url,searchParams,"POST");来自style.js(全文如下:)

function table(table) {

    var Sys = (function(ua) {
        var s = {};
        s.IE = ua.match(/msie ([\d.]+)/) ? true : false;
        s.Firefox = ua.match(/firefox\/([\d.]+)/) ? true : false;
        s.Chrome = ua.match(/chrome\/([\d.]+)/) ? true : false;
        s.IE6 = (s.IE && ([ /MSIE (\d)\.0/i.exec(navigator.userAgent) ][0][1] == 6)) ? true
                : false;
        s.IE7 = (s.IE && ([ /MSIE (\d)\.0/i.exec(navigator.userAgent) ][0][1] == 7)) ? true
                : false;
        s.IE8 = (s.IE && ([ /MSIE (\d)\.0/i.exec(navigator.userAgent) ][0][1] == 8)) ? true
                : false;
        return s;
    })(navigator.userAgent.toLowerCase());
    function $(Id) {
        return document.getElementById(Id);
    }
    ;
    function addListener(element, e, fn) {
        element.addEventListener ? element.addEventListener(e, fn, false)
                : element.attachEvent("on" + e, fn);
    }
    ;
    function removeListener(element, e, fn) {
        element.removeEventListener ? element.removeEventListener(e, fn, false)
                : element.detachEvent("on" + e, fn);
    }
    ;
    var Css = function(e, o) {
        if (typeof o == "string") {
            e.style.cssText = o;
            return;
        }
        for ( var i in o)
            e.style[i] = o[i];
    };
    var Bind = function(object, fun) {
        var args = Array.prototype.slice.call(arguments).slice(2);
        return function() {
            return fun.apply(object, args);
        };
    };
    var BindAsEventListener = function(object, fun) {
        var args = Array.prototype.slice.call(arguments).slice(2);
        return function(event) {
            return fun.apply(object, [ event || window.event ].concat(args));
        };
    };
    var Extend = function(destination, source) {
        for ( var property in source) {
            destination[property] = source[property];
        }
        ;
    };
    var Class = function(properties) {
        var _class = function() {
            return (arguments[0] !== null && this.initialize && typeof (this.initialize) == 'function') ? this.initialize
                    .apply(this, arguments)
                    : this;
        };
        _class.prototype = properties;
        return _class;
    };
    var Table = new Class(
            {
                initialize : function(tab, set) {
                    this.table = tab;
                    this.thead = tab.getElementsByTagName('thead')[0]; // 常用的dom元素做成索引
                    this.theadtds = this.thead.getElementsByTagName('td'); // 
                    this.rows = []; // 里面tbodys记录所有tr的引用
                                    // 这里用数组记录是因为数组有reverse方法,可以用来正序,反序
                    this.clos = {}; // 里面记录所有列元素的引用
                    this.edits = {}; // 编辑表格的规则和提示
                    this.sortCol = null; // 记录哪列正在排序中
                    this.inputtd = null; // 记录哪个input被编辑了
                    this.closarg = {
                        tdnum : null,
                        totdnum : null,
                        closmove : BindAsEventListener(this, this.closmove),
                        closup : BindAsEventListener(this, this.closup)
                    }; // 关于列拖拽的一些属性方法
                    this.widtharg = {
                        td : null,
                        nexttd : null,
                        x : 0,
                        tdwidth : 0,
                        nexttdwidth : 0,
                        widthmove : BindAsEventListener(this, this.widthmove),
                        widthup : BindAsEventListener(this, this.widthup)
                    };
                    var i = 0, j = 0, d = document, rows = tab.tBodies[0].rows, tds1 = tab.tBodies[0]
                            .getElementsByTagName('td'), edit = [];
                    var divs = this.thead.getElementsByTagName('div');
                    this.input = d.createElement('input'); // 编辑用的input
                    this.input.type = "text";
                    this.input.className = 'edit';
                    this.img = d.body.appendChild(d.createElement('div'));
                    this.img.className = "cc";
                    this.line = d.body.appendChild(d.createElement('div'));
                    this.line.className = 'line';
                    this.line.style.top = tab.offsetTop + "px";
                    if (Sys.IE6) {
                        this.checkbox = {}; // 记录那些checkbox被选中了 处理ie6不兼容的问题
                        var checkboxs = tab.getElementsByTagName('input'), k = 0;
                        for (var lll = checkboxs.length; k < lll; k++)
                            checkboxs[k].type == "checkbox"
                                    && addListener(
                                            checkboxs[k],
                                            "click",
                                            Bind(
                                                    this,
                                                    function(elm, k) {
                                                        elm.checked == true ? (this.checkbox[k] = elm)
                                                                : (delete this.checkbox[k]);
                                                    }, checkboxs[k], k));
                    }
                    ;
                    for (var l = set.length; i < l; i++) {
                        addListener(this.theadtds[set[i].id], 'click', Bind(
                                this, this.sortTable, this.theadtds[set[i].id],
                                set[i].id, set[i].type));
                        set[i].edit && (this.edits[set[i].id] = {
                            rule : set[i].edit.rule,
                            message : set[i].edit.message
                        });
                    }
                    ;
                    for (l = rows.length; j < l; j++)
                        this.rows[j] = rows[j];
                    for (var k = 0, l = this.theadtds.length; k < l; k++) {
                        this.clos[k] = [];
                        this.theadtds[k].setAttribute('clos', k), addListener(
                                this.theadtds[k], 'mousedown',
                                BindAsEventListener(this, this.closdrag));
                    }
                    for (var i = 0, l = tds1.length; i < l; i++) {
                        var p = i < this.theadtds.length - 1 ? i : i
                                % this.theadtds.length;
                        this.clos[p][this.clos[p].length] = tds1[i];
                        this.edits[p] && tds1[i].setAttribute('edit', p);
                    }
                    for (var i = 0, l = divs.length; i < l; i++) {
                        addListener(divs[i], 'mousedown', BindAsEventListener(
                                this, this.widthdrag));
                    }
                    /*---------------------------------------------*/
                    /*---------------------------------------------*/
                    addListener(this.thead, 'mouseover', BindAsEventListener(
                            this, this.theadhover));
                    addListener(tab.tBodies[0], 'dblclick',
                            BindAsEventListener(this, this.edit));
                    addListener(this.input, 'blur', Bind(this, this.save,
                            this.input));
                },
                theadhover : function(e) {
                    e = e || window.event;
                    var obj = e.srcElement || e.target;
                    if (obj.nodeName.toLowerCase() == 'td')
                        this.closarg.totdnum = (obj).getAttribute('clos');
                    else if (obj.nodeName.toLowerCase() == 'div')
                        obj.style.cursor = "sw-resize";
                },
                widthdrag : function(e) {
                    if (Sys.IE) {
                        e.cancelBubble = true
                    } else {
                        e.stopPropagation()
                    }
                    this.widtharg.x = e.clientX;
                    this.widtharg.td = (e.srcElement || e.target).parentNode;
                    if (Sys.IE) {
                        this.widtharg.nexttd = this.widtharg.td.nextSibling;
                    } else {
                        this.widtharg.nexttd = this.widtharg.td.nextSibling.nextSibling;
                    }
                    this.widtharg.tdwidth = this.widtharg.td.offsetWidth;
                    this.widtharg.nexttdwidth = this.widtharg.nexttd.offsetWidth;
                    this.line.style.height = this.table.offsetHeight + "px";
                    addListener(document, 'mousemove', this.widtharg.widthmove);
                    addListener(document, 'mouseup', this.widtharg.widthup);
                },
                widthmove : function(e) {
                    window.getSelection ? window.getSelection()
                            .removeAllRanges() : document.selection.empty();
                    var x = e.clientX - this.widtharg.x, left = e.clientX, clientx = e.clientX;
                    if (clientx < this.widtharg.x) {
                        if (this.widtharg.x - clientx > this.widtharg.tdwidth - 35)
                            left = this.widtharg.x - this.widtharg.tdwidth + 35;
                    }
                    if (clientx > this.widtharg.x) {
                        if (clientx - this.widtharg.x > this.widtharg.nexttdwidth - 35)
                            left = this.widtharg.x + this.widtharg.nexttdwidth
                                    - 35;
                    }
                    Css(this.line, {
                        display : "block",
                        left : left + "px"
                    });
                },
                widthup : function(e) {
                    this.line.style.display = "none";
                    var x = parseInt(this.line.style.left) - this.widtharg.x;
                    this.widtharg.nexttd.style.width = this.widtharg.nexttdwidth
                            - x + 'px';
                    this.widtharg.td.style.width = this.widtharg.tdwidth + x
                            + 'px';
                    removeListener(document, 'mousemove',
                            this.widtharg.widthmove);
                    removeListener(document, 'mouseup', this.widtharg.widthup);
                },
                closdrag : function(e) {
                    e = e || window.event;
                    var obj = e.srcElement || e.target;
                    if (obj.nodeName.toLowerCase() == "span")
                        obj = obj.parentNode;
                    this.closarg.tdnum = obj.getAttribute('clos');
                    ;
                    addListener(document, 'mousemove', this.closarg.closmove);
                    addListener(document, 'mouseup', this.closarg.closup);
                },
                closmove : function(e) {
                    window.getSelection ? window.getSelection()
                            .removeAllRanges() : document.selection.empty();
                    Css(this.img, {
                        display : "block",
                        left : e.clientX + 9 + "px",
                        top : e.clientY + 20 + "px"
                    });
                },
                closup : function() {
                    this.img.style.display = "none";
                    removeListener(document, 'mousemove', this.closarg.closmove);
                    removeListener(document, 'mouseup', this.closarg.closup);
                    if (this.closarg.totdnum == this.closarg.tdnum)
                        return;
                    var rows = this.table.getElementsByTagName('tr'), tds, n, o;
                    if ((parseInt(this.closarg.tdnum) + 1) == parseInt(this.closarg.totdnum)) {
                        o = this.closarg.tdnum;
                        n = this.closarg.totdnum;
                    } else {
                        n = this.closarg.tdnum;
                        o = this.closarg.totdnum;
                    }
                    for (var i = 0, l = rows.length; i < l; i++) {
                        tds = rows[i].getElementsByTagName('td');
                        try {
                            rows[i].insertBefore(tds[n], tds[o]);
                        } catch (err) {
                            return;
                        }
                    }
                    for (var i = 0, l = this.theadtds.length; i < l; i++)
                        this.theadtds[i].setAttribute('clos', i);
                },
                edit : function(e) {
                    var o = e.srcElement || e.target;
                    if (!o.getAttribute('edit'))
                        return;
                    this.inputtd = o;
                    var v = o.innerHTML;
                    o.innerHTML = "";
                    o.appendChild(this.input);
                    this.input.value = v;
                    this.input.focus();
                },
                save : function(o) {
                    var edit = this.edits[o.parentNode.getAttribute('edit')];
                    if (edit.rule.test(this.input.value)) {
                        this.inputtd.innerHTML = this.input.value;
                        this.inputtd = null;
                    } else {
                        alert(edit.message);
                    }
                },
                sortTable : function(td, n, type) {
                    var frag = document.createDocumentFragment(), str = td
                            .getElementsByTagName('span')[0].innerHTML, span = td
                            .getElementsByTagName('span')[0];
                    if (this.row != null || td == this.sortCol) {
                        this.rows.reverse();
                        span.innerHTML = str.replace(/.$/, str
                                .charAt(str.length - 1) == "↓" ? "↑" : "↓");
                    } else {
                        this.rows.sort(this.compare(n, type));
                        span.innerHTML = span.innerHTML + "↑";
                        this.sortCol != null
                                && (this.sortCol.getElementsByTagName('span')[0].innerHTML = this.sortCol
                                        .getElementsByTagName('span')[0].innerHTML
                                        .replace(/.$/, ''));
                    }
                    ;
                    for (var i = 0, l = this.rows.length; i < l; i++)
                        frag.appendChild(this.rows[i]);
                    this.table.tBodies[0].appendChild(frag);
                    if (Sys.IE6) {
                        for ( var s in this.checkbox)
                            this.checkbox[s].checked = true;
                    }
                    this.sortCol = td;
                },
                compare : function(n, type) {
                    return function(a1, a2) {
                        var convert = {
                            int : function(v) {
                                return parseInt(v.replace(/,/g,''))
                            },
                            float : function(v) {
                                return parseFloat(v)
                            },
                            date : function(v) {
                                return v.toString()
                            },
                            string : function(v) {
                                return v.toString()
                            }
                        };
                        !convert[type] && (convert[type] = function(v) {
                            return v.toString()
                        });
                        a1 = convert[type](a1.cells[n].innerHTML);
                        a2 = convert[type](a2.cells[n].innerHTML);
                        if (a1 == a2)
                            return 0;
                        return a1 < a2 ? -1 : 1;
                    };
                }
            });

    var set = [];
    var obj = document.getElementById(table);
    var thead = obj.getElementsByTagName('thead')[0];
    var tds = thead.getElementsByTagName('td');
    var len = tds.length;
    for (var i = 0; i < len; i++) {
        var sort = tds[i].getAttribute('sort') || '';
        var tmp = {};
        if (sort != '') {
            // 去除空格
            sort = sort.replace(/(^\s*)|(\s*$)/g, "");
            tmp.id = i;
            tmp.type = sort;
            set.push(tmp);
        }
        ;
    }
    new Table($(table), set);
};

/**
 * td内容过长处理
 * 
 * @param maxLength显示的最长的字符数
 */
// class="min-25"的
// function tdTextLongHandle(maxLength){
// var text;
// $(".min-25").each(function(){
// if($(this).children().length == 0){
// text = $(this).text().trim();
// if(text.length>maxLength){
// $("this,.min-25").addClass("min-30");
// // $(this).text(text.substring(0,maxLength)+"...");
// // $(this).prop("title",text);
// }
// }
// })
// }
// // class="min-20"的
// function tdTextLongHandl(maxLength){
// var text;
// $(".min-20").each(function(){
// if($(this).children().length == 0){
// text = $(this).text().trim();
// if(text.length>maxLength){
// $("this,.min-20").addClass("min-25");
// // $(this).text(text.substring(0,maxLength)+"...");
// // $(this).prop("title",text);
// }
// }
// })
// }
// // class="min-15"的
// function tdTextLongHand(maxLength){
// var text;
// $(".min-15").each(function(){
// if($(this).children().length == 0){
// text = $(this).text().trim();
// if(text.length>maxLength){
// $("this,.min-15").addClass("min-20");
// // $(this).text(text.substring(0,maxLength)+"...");
// // $(this).prop("title",text);
// }
// }
// })
// }
// $(document).ready(function(){
// tdTextLongHandle(23);
// tdTextLongHandl(14);
// tdTextLongHand(10);
// });
// 表格隔列文字标题居右
// $(document).ready(function() {
// $(".table6 tr td:even").addClass("td_right");
// })

$(function() {
    reloadTableEffect();
    autoSetTbodyHeight();
    loadThousandsSeparator();
});
/**
 * 重新加载表格效果
 */
function reloadTableEffect() {
    trClick2Checked();
    tableInterlaced();
    tdTextLongHandle();
}
/**
 * 表格隔行变色
 */
function tableInterlaced() {
    $(".scrollContent tr").mouseover(function() {
        $(this).addClass("t3");
    }).mouseout(function() {
        $(this).removeClass("t3");
    });
    $(".scrollContent tr:even").addClass("t2");
    $(".scrollContent tr:odd").removeClass("t2");
}
/**
 * 点击行选中复选框
 */
function trClick2Checked() {
    if ($("tbody").hasClass("limit-box")) {
    } else {
        $(".scrollContent tr").unbind("click.trClickCheckBox");
        $(".scrollContent tr").bind(
                "click.trClickCheckBox",
                function() {
                    if ($(this).find("input[type='checkbox']").length > 0) {
                        if ($(this).find("input[type='checkbox']").prop(
                                "checked") == true) {
                            $(this).find("input[type='checkbox']").prop(
                                    "checked", false);
                            $(this).removeClass("bgss");
                        } else {
                            $(this).find("input[type='checkbox']").prop(
                                    "checked", true);
                            $(this).addClass("bgss");
                        }
                    }
                });
        $(".scrollContent tr input[type='text']").unbind("click.trClickCheckBox");
    }
}
/**
 * 自动设置tbody的高度
 */
function autoSetTbodyHeight() {
    // 根据屏幕分辨率不同给tbody加上合适的高度
    if ($(".tbody").length == 0)
        return;
    var pageHeight = $(".tbody").offset().top;
    var total = document.documentElement.clientHeight;
    var colHeight = total - pageHeight - 30;
    $(".tbody").height(colHeight);
}
// 给id="tests"的tbody加上合适的高度使其出现纵向滚动条
total = document.documentElement.clientHeight;
colHeight = total - 90;
if ($("#tests").length > 0) {
    document.getElementById("tests").style.height = colHeight + "px";
}

// 表格中文居左,数字居右
;
(function($) {
    setInterval(function() {
        $('.scrollContent td').each(function() {
            if (!isNaN($.trim($(this).text()))) {
                $(this).css("text-align", "right");
            } else {
                $(this).css("text-align", "left");
            }
            ;

            if (parseInt($(this).text()) > -1) {
                $(this).css("text-align", "right");
            } else {
                $(this).css("text-align", "left");
            }
            ;

            if (/[\u4e00-\u9fa5]/g.test($(this).text())) {
                $(this).css("text-align", "left");
            }
        });
    }, 10);
}(jQuery));
/**
 * td内容过长处理
 * 
 * @param maxLength显示的最长的字节数
 */
function tdTextLongHandle() {
    var text;
    var subText;
    var textLength;
    var maxLength;
    $("td[maxlength]:not([title])").each(function() {
        maxLength = Number($(this).attr("maxlength"));
        if (isNaN(maxLength) || maxLength <= 0)
            return true;// 不是数字类型或不大于0的直接返回
        if ($(this).children().length == 0) {
            text = $(this).text();
            textLength = text.replace(/[^\x00-\xff]/g, "**").length;
            if (textLength > maxLength) {
                $(this).text(autoAddEllipsis(text, maxLength));
                $(this).prop("title", text);
                $(this).attr("data", text);
            }
        }
    })
}
/**
 * 处理过长的字符串,截取并添加省略号 注:半角长度为1,全角长度为2
 * 
 * pStr:字符串 pLen:截取长度
 * 
 * return: 截取后的字符串
 */
function autoAddEllipsis(pStr, pLen) {

    var _ret = cutString(pStr, pLen);
    var _cutFlag = _ret.cutflag;
    var _cutStringn = _ret.cutstring;

    if ("1" == _cutFlag) {
        return _cutStringn + "...";
    } else {
        return _cutStringn;
    }
}

/**
 * 取得指定长度的字符串 注:半角长度为1,全角长度为2
 * 
 * pStr:字符串 pLen:截取长度
 * 
 * return: 截取后的字符串
 */
function cutString(pStr, pLen) {
    // 原字符串长度
    var _strLen = pStr.length;
    var _tmpCode;
    var _cutString;
    // 默认情况下,返回的字符串是原字符串的一部分
    var _cutFlag = "1";
    var _lenCount = 0;
    var _ret = false;
    if (_strLen <= pLen / 2) {
        _cutString = pStr;
        _ret = true;
    }
    if (!_ret) {
        for (var i = 0; i < _strLen; i++) {
            if (isFull(pStr.charAt(i))) {
                _lenCount += 2;
            } else {
                _lenCount += 1;
            }
            if (_lenCount > pLen) {
                _cutString = pStr.substring(0, i);
                _ret = true;
                break;
            } else if (_lenCount == pLen) {
                _cutString = pStr.substring(0, i + 1);
                _ret = true;
                break;
            }
        }
    }
    if (!_ret) {
        _cutString = pStr;
        _ret = true;
    }
    if (_cutString.length == _strLen) {
        _cutFlag = "0";
    }
    return {
        "cutstring" : _cutString,
        "cutflag" : _cutFlag
    };
}

/**
 * 判断是否为全角
 * 
 * pChar:长度为1的字符串 return: true:全角 false:半角
 */
function isFull(pChar) {
    if ((pChar.charCodeAt(0) > 128)) {
        return true;
    } else {
        return false;
    }
}

$(document).ready(function(){
    $("input[comma='comma_0']").blur(function() {
         $(this).val(parseFormatNum(parseFormatNums($(this).val(), 0), 0))
    })
    $("input[comma='comma_2']").blur(function() {
         $(this).val(parseFormatNum(parseFormatNums($(this).val(), 2), 2))
    })
    $("input[comma='comma_4']").blur(function() {
         $(this).val(parseFormatNum(parseFormatNums($(this).val(), 4), 4))
    })
    
});

/**
 * 按照千位分隔符加载数据。
 */
function loadThousandsSeparator() {
    $(".parseFormatNum_0").each(function() {
     if($(this).text()==''){}else{
        $(this).text(parseFormatNum(parseFormatNums($(this).text(), 0), 0))
     }
    });
    $(".parseFormatNum_2").each(function() {
     if($(this).text()==''){}else{    
        $(this).text(parseFormatNum(parseFormatNums($(this).text(), 2), 2))
     }    
    });
    $(".parseFormatNum_4").each(function() {
     if($(this).text()==''){}else{    
        $(this).text(parseFormatNum(parseFormatNums($(this).text(), 4), 4))
     }    
    });
    /*初始化表单加逗号*/
    $("input[comma='comma_0']").each(function() {
        if($(this).val()==''){}else{
        $(this).val(parseFormatNum(parseFormatNums($(this).val(), 0), 0));
        }
    });
    $("input[comma='comma_2']").each(function() {
        if($(this).val()==''){}else{
        $(this).val(parseFormatNum(parseFormatNums($(this).val(), 2), 2));
        }
    });
    $("input[comma='comma_4']").each(function() {
        if($(this).val()==''){}else{
        $(this).val(parseFormatNum(parseFormatNums($(this).val(), 4), 4));
        }
    });
}

/**
 * 表单加逗号千位分隔符显示效果
 */
function loadThousanq(){
    $("input[comma='comma_0']").each(function() {
     if($(this).val()==''){}else{
        $(this).val(parseFormatNum(parseFormatNums($(this).val(), 0), 0));
      }
    });
    $("input[comma='comma_2']").each(function() {
     if($(this).val()==''){}else{
        $(this).val(parseFormatNum(parseFormatNums($(this).val(), 2), 2));
     }
    });
    $("input[comma='comma_4']").each(function() {
     if($(this).val()==''){}else{
        $(this).val(parseFormatNum(parseFormatNums($(this).val(), 4), 4));
     }
    });
}


/**
 * 删除表单千位分隔符显示效果。
 */
function removeps() {
    $("input[comma='comma_0']").each(function() {
         if($(this).val()==''){}else{
        $(this).val(parseFormatNums($(this).val(), 0))
         }
    });
    $("input[comma='comma_2']").each(function() {
         if($(this).val()==''){}else{
        $(this).val(parseFormatNums($(this).val(), 2))
         }
    });
    $("input[comma='comma_4']").each(function() {
         if($(this).val()==''){}else{
        $(this).val(parseFormatNums($(this).val(), 4))
         }
    });
}

/**
 * 删除表格千位分隔符显示效果。
 */
function removeparse() {
    $(".parseFormatNum_0").each(function() {
         if($(this).text()==''){}else{
        $(this).text(parseFormatNums($(this).text(), 0))
         }
    });
    $(".parseFormatNum_2").each(function() {
         if($(this).text()==''){}else{    
            $(this).text(parseFormatNums($(this).text(), 2))
        }
    });
    $(".parseFormatNum_4").each(function() {
         if($(this).text()==''){}else{
        $(this).text(parseFormatNums($(this).text(), 4))
         }
    });
}

// 金额加逗号
function parseFormatNum(num, n) {
if(isNaN(num)){//js自己的方法检验数字
    return 0;
  }else{
    return num && num.toString().replace(/(\d)(?=(\d{3})+\.)/g, function($0, $1) {
            return $1 + ",";
        });
 }
}
// function parseFormatNum(number, n) {
//     if (n != 0) {
//         n = (n > 0 && n <= 20) ? n : 2;
//     }
//     number = parseFloat((number + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
//     var sub_val = number.split(".")[0].split("").reverse();
//     var sub_xs = number.split(".")[1];
//     var show_html = "";
//     for (i = 0; i < sub_val.length; i++) {
//         show_html += sub_val[i]
//                 + ((i + 1) % 3 == 0 && (i + 1) != sub_val.length ? "," : "");
//     }
//     if (n == 0) {
//         return show_html.split("").reverse().join("");
//     } else {
//         return show_html.split("").reverse().join("") + "." + sub_xs;
//     }
// }



// 金额去逗号
function parseFormatNums(number, n) {
    if (n != 0) {
        n = (n > 0 && n <= 20) ? n : 2;
    }
    number = parseFloat((number + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
    var sub_val = number.split(".")[0].split("").reverse();
    var sub_xs = number.split(".")[1];
    var show_html = "";
    for (i = 0; i < sub_val.length; i++) {
        show_html += sub_val[i]
                + ((i + 1) % 3 == 0 && (i + 1) != sub_val.length ? "" : "");
    }
    if (n == 0) {
        return show_html.split("").reverse().join("");
    } else {
        return show_html.split("").reverse().join("") + "." + sub_xs;
    }
}
/**
 * 获取搜索条件的参数。
 * @param formid
 * @returns
 */
function getSearchParams(){
    var data = $('#pageForm').serializeArray();
    for(var i=0;i<arguments.length;i++){
        if(typeof(arguments[i]) != "string")continue;
        $("#"+arguments[i])[0].reset();
        data = $.merge(data,$("#"+arguments[i]).serializeArray());
    }
    return JSON.stringify(data);
}
/**
 * 获取搜索条件的参数。
 * @param formid
 * @returns
 */
function getSearchParamsUnReset(){
    var data = $('#pageForm').serializeArray();
    for(var i=0;i<arguments.length;i++){
        if(typeof(arguments[i]) != "string")continue;
        data = $.merge(data,$("#"+arguments[i]).serializeArray());
    }
    return JSON.stringify(data);
}
/**
 * 返回列表页
 */
function goBackList(url,data,method){
    if( url ){
        var form = $("<form></form>");
        form.appendTo("body");
        var inputs="";
        var dataObj = JSON.parse(data);
        jQuery.each(dataObj, function(index,obj){ 
            inputs+='<input type="hidden" name="'+ obj.name +'" value="'+ obj.value +'" />'; 
        });
        if(method==undefined)method = "GET";
        form.html(inputs);
        form.prop("method",method);
        form.prop("action",url);
        showLoading();
        form.submit();
    };
}
/**
 * 临时表单提交,编辑或新增时的页面跳转。
 * @param url
 * @param paramString
 * @param method
 */
function tempFormSubmit(url,paramString,method,backUrl){
    if( url ){
        if(method==undefined)method = "GET";
        var tempForm = document.createElement("form");    
       tempForm.id="tempForm1";
       tempForm.method=method;
       tempForm.action=url;
       if(paramString){
           var hideInput = document.createElement("input");    
           hideInput.type="hidden";    
           hideInput.name= "searchParams";  
           hideInput.value= paramString;  
           tempForm.appendChild(hideInput);
       };
       if(backUrl){
           var hideInput = document.createElement("input");    
           hideInput.type="hidden";    
           hideInput.name= "backUrl";  
           hideInput.value= backUrl;  
           tempForm.appendChild(hideInput);
       };
       document.body.appendChild(tempForm);
       showLoading();
       $(tempForm).submit();  
       document.body.removeChild(tempForm);  
    };
};

 

 

 

其中页面js里面,获取CheckBox已经勾选的对象数组函数getCheckBoxs()来自于checkBoxUtil.js

//获得已经选中的checkBox,返回对象数组
function getCheckBoxs(name){
    var count=0;
    var checkedArray = new Array();
    var checkBoxs=document.getElementsByName(name);  
    for (var i=0;i<checkBoxs.length;i++)
    {
        var e = checkBoxs[i];
        if(e.checked){
            checkedArray[count++]=checkBoxs[i];
        }
    }
    return checkedArray;
}

 

该js全文如下:

//反选
function reverseCheck(name)
{
  var eles=document.getElementsByName(name);  
  for (var i=0;i<eles.length;i++)
   {
        var e = eles[i];        
        e.checked=!e.checked;   
  }    
}
   
//全不选
function unCheckAll(name)
{
  var eles=document.getElementsByName(name);  
  for (var i=0;i<eles.length;i++)
   {
        var e = eles[i];
        e.checked=false;   
  }
}
   
//全选
function checkAll(name)
{
  var eles=document.getElementsByName(name);  
  for (var i=0;i<eles.length;i++)
   {
        var e = eles[i];
        e.checked=true;   
  }
}

//获得已经选中的checkBox,返回对象数组
function getCheckBoxs(name){
    var count=0;
    var checkedArray = new Array();
    var checkBoxs=document.getElementsByName(name);  
    for (var i=0;i<checkBoxs.length;i++)
    {
        var e = checkBoxs[i];
        if(e.checked){
            checkedArray[count++]=checkBoxs[i];
        }
    }
    return checkedArray;
}

//获得已经选中的checkBox,返回对象数组
function ifChecked(name){    
    var checkBoxs=document.getElementsByName(name);  
    for (var i=0;i<checkBoxs.length;i++)
    {
        var e = checkBoxs[i];
        if(e.checked){
            return true;
        }
    }
    return false;
}


//获得未选中的checkBox,返回对象数组
function getUnCheckBoxs(name){
    var count=0;
    var uncheckedArray = new Array();
    var checkBoxs=document.getElementsByName(name);  
    for (var i=0;i<checkBoxs.length;i++)
    {
        var e = checkBoxs[i];
        if(!e.checked){
            uncheckedArray[count++]=checkBoxs[i];
        }
    }
    return uncheckedArray;
}


//设置选中值
function checkBoxs(name,matchFunction){
    if(!matchFunction&&typeof(matchFunction)!="function"){
        alert('没有实现匹配方法!');
        return;
    }
    var checkBoxs=document.getElementsByName(name);  
    for (var i=0;i<checkBoxs.length;i++)
    {
        var e = checkBoxs[i];
        if(matchFunction(checkBoxs[i])){
            checkBoxs[i].checked=true;
        }
    }
}

//设置复选框状态
function setCheckBoxs(name,matchFunction){
    if(!matchFunction&&typeof(matchFunction)!="function"){
        alert('没有实现匹配方法!');
        return;
    }
    var checkBoxs=document.getElementsByName(name);  
    for (var i=0;i<checkBoxs.length;i++)
    {
        var e = checkBoxs[i];
        if(matchFunction(checkBoxs[i])){
            checkBoxs[i].disabled=true;
        }
    }
}

//获得已经选中的checkBox,返回以两个指定列的值组成的二维数组
function getCheckBoxsMap(name, value){
    
    var checkedArray = new Array();
    var checkBoxs=document.getElementsByName(name);  
    var checkValues=document.getElementsByName(value);
    
    var count=0;
    //生成第一维,必须先声明第一维,然后才可以声明第二维,声明时,用checkedArray[count++]失败
    for (var i=0;i<checkBoxs.length;i++){
        var e = checkBoxs[i];
        if(e.checked){
            checkedArray[count] = new Array();
            checkedArray[count][0]=checkBoxs[i].value;
            checkedArray[count][1]=checkValues[i].value;
            count ++;
        }
    }
    //for (var k=0;k<checkedArray.length;k++){
    //    alert(checkedArray[k][0] + " --- " + checkedArray[k][1]);
    //}
    return checkedArray;
}


//隐藏复选框
function hideCheckBoxs(name,matchFunction){
    if(!matchFunction&&typeof(matchFunction)!="function"){
        alert('没有实现匹配方法!');
        return;
    }
    var checkBoxs=document.getElementsByName(name);  
    var objAry = new Array();
    for (var i=0;i<checkBoxs.length;i++)
    {
        if(matchFunction(checkBoxs[i])){
            objAry[objAry.length] = checkBoxs[i];
        }
    }
    for (var j=0;j<objAry.length;j++)
    {
        objAry[j].outerHTML = "";
    }    
}

 

 

自定义的弹出格式方法来自另一个js文件(modalEffects.js),全文如下:

 

/**
 * modalEffects.js v1.0.0
 * http://www.codrops.com
 *
 * Licensed under the MIT license.
 * http://www.opensource.org/licenses/mit-license.php
 * 
 * Copyright 2013, Codrops
 * http://www.codrops.com
 */
 // 弹窗定位
function yyi(obj,offset){
          var objClass = obj.class;
          var top;
          var left;
          if($(obj).hasClass("md-modal")){
            top = ($(window).height() - $('#'+obj.id).height())/2;   
            left = ($(window).width() - $('#'+obj.id).width())/2; 
          }
          if($(obj).hasClass("md-tree")){
            top = ($(window).height() - $('#'+obj.id).height())/2;   
            left = ($(window).width() - $('#'+obj.id).width())/1.12; 
          }
          if($(obj).hasClass("md-treeqw")){
            var ssd = offset.top+30;
            var qqd = offset.left;
            top = ssd;
            left = qqd; 
          }
          var scrollTop = $(document).scrollTop();   
          var scrollLeft = $(document).scrollLeft();  
          $('#'+obj.id).css( { position : 'absolute', top : top + scrollTop, left : left + scrollLeft} );  
          }

var ModalEffects = (function() {

    function init() {

        //var overlay = document.querySelector( '.md-overlay' );

        [].slice.call( document.querySelectorAll( '.md-trigger' ) ).forEach( function( el, i ) {

            var modal = document.querySelector( '#' + el.getAttribute( 'data-modal' ) ),
                close = modal.querySelector( '.md-close' );
                close1 = modal.querySelector( '.abc' );
                close2 = modal.querySelector( '.asd' );
            function removeModal( hasPerspective ) {
                classie.remove( modal, 'md-show' );

                if( hasPerspective ) {
                    classie.remove( document.documentElement, 'md-perspective' );
                }
            }

            function removeModalHandler() {
                removeModal( classie.has( el, 'md-setperspective' ) ); 
            }

        el.addEventListener('click', function(ev) {
        classie.add(modal, 'md-show');
        yyi(modal,$(el).offset());
        // overlay.removeEventListener( 'click', removeModalHandler );
        // overlay.addEventListener( 'click', removeModalHandler );
        // 拖拽
        var oTitle = modal.getElementsByTagName("h3")[0];
        var oDrag = new Drag(modal, {
          handle: oTitle,
          limit: false
        });
        // end---
        if (classie.has(el, 'md-setperspective')) {
          setTimeout(function() {
            classie.add(document.documentElement, 'md-perspective');
          }, 25);
        }
      });

            close.addEventListener( 'click', function( ev ) {
                ev.stopPropagation();
                removeModalHandler();
            });
            if(close1!=null){
                close1.addEventListener( 'click', function( ev ) {
                    ev.stopPropagation();
                    removeModalHandler();
                });
            }
            if(close2!=null){
                close2.addEventListener( 'click', function( ev ) {
                    ev.stopPropagation();
                    removeModalHandler();
                });
            }

        } );

    }

    init();

})();

//弹窗拖拽
function Drag() {
  //初始化
  this.initialize.apply(this, arguments)
}
Drag.prototype = {
  //初始化
  initialize: function(drag, options) {
    this.drag = this.$(drag);
    this._x = this._y = 0;
    this._moveDrag = this.bind(this, this.moveDrag);
    this._stopDrag = this.bind(this, this.stopDrag);

    this.setOptions(options);

    this.handle = this.$(this.options.handle);
    this.maxContainer = this.$(this.options.maxContainer);

    this.maxTop = Math.max(this.maxContainer.clientHeight, this.maxContainer.scrollHeight) - this.drag.offsetHeight;
    this.maxLeft = Math.max(this.maxContainer.clientWidth, this.maxContainer.scrollWidth) - this.drag.offsetWidth;

    this.limit = this.options.limit;
    this.lockX = this.options.lockX;
    this.lockY = this.options.lockY;
    this.lock = this.options.lock;

    this.onStart = this.options.onStart;
    this.onMove = this.options.onMove;
    this.onStop = this.options.onStop;

    this.handle.style.cursor = "move";

    this.changeLayout();

    this.addHandler(this.handle, "mousedown", this.bind(this, this.startDrag))
  },
  changeLayout: function() {
    this.drag.style.top = this.drag.offsetTop + "px";
    this.drag.style.left = this.drag.offsetLeft + "px";
    this.drag.style.position = "absolute";
    this.drag.style.margin = "0"
  },
  startDrag: function(event) {
    var event = event || window.event;

    this._x = event.clientX - this.drag.offsetLeft;
    this._y = event.clientY - this.drag.offsetTop;

    this.addHandler(document, "mousemove", this._moveDrag);
    this.addHandler(document, "mouseup", this._stopDrag);

    event.preventDefault && event.preventDefault();
    this.handle.setCapture && this.handle.setCapture();

    this.onStart()
  },
  moveDrag: function(event) {
    var event = event || window.event;

    var iTop = event.clientY - this._y;
    var iLeft = event.clientX - this._x;

    if (this.lock) return;

    this.limit && (iTop < 0 && (iTop = 0), iLeft < 0 && (iLeft = 0), iTop > this.maxTop && (iTop = this.maxTop), iLeft > this.maxLeft && (iLeft = this.maxLeft));

    this.lockY || (this.drag.style.top = iTop + "px");
    this.lockX || (this.drag.style.left = iLeft + "px");

    event.preventDefault && event.preventDefault();

    this.onMove()
  },
  stopDrag: function() {
    this.removeHandler(document, "mousemove", this._moveDrag);
    this.removeHandler(document, "mouseup", this._stopDrag);

    this.handle.releaseCapture && this.handle.releaseCapture();

    this.onStop()
  },
  //参数设置
  setOptions: function(options) {
    this.options = {
      handle: this.drag, //事件对象
      limit: true, //锁定范围
      lock: false, //锁定位置
      lockX: false, //锁定水平位置
      lockY: false, //锁定垂直位置
      maxContainer: document.documentElement || document.body, //指定限制容器
      onStart: function() {}, //开始时回调函数
      onMove: function() {}, //拖拽时回调函数
      onStop: function() {} //停止时回调函数
    };
    for (var p in options) this.options[p] = options[p]
  },
  //获取id
  $: function(id) {
    return typeof id === "string" ? document.getElementById(id) : id
  },
  //添加绑定事件
  addHandler: function(oElement, sEventType, fnHandler) {
    return oElement.addEventListener ? oElement.addEventListener(sEventType, fnHandler, false) : oElement.attachEvent("on" + sEventType, fnHandler)
  },
  //删除绑定事件
  removeHandler: function(oElement, sEventType, fnHandler) {
    return oElement.removeEventListener ? oElement.removeEventListener(sEventType, fnHandler, false) : oElement.detachEvent("on" + sEventType, fnHandler)
  },
  //绑定事件到对象
  bind: function(object, fnHandler) {
    return function() {
      return fnHandler.apply(object, arguments)
    }
  }
};
// 采购合同号录入
$(document).ready(function(){
    $('#addradio').click(function(){  
      $('.cghth:checked').closest('tr').find('td').each(function(){
            var id = $(this).attr('data-id');
            $('#'+id).val($.trim($(this).text()));
        });
    });
  });
// 商品录入
$(document).ready(function(){
    $('#addsplrr').click(function(){  
      $('.splrr:checked').closest('tr').find('td').each(function(){
            var id = $(this).attr('data-id');
            $('#'+id).val($.trim($(this).text()));
        });
    });
  });
// 商品录入2
$(document).ready(function(){
    $('#addsplrrr').click(function(){  
      $('.splrrr:checked').closest('tr').find('td').each(function(){
            var id = $(this).attr('data-id');
            $('#'+id).val($.trim($(this).text()));
        });
    });
  });
// 品牌录入
$(document).ready(function(){
    $('#addpp').click(function(){  
      $('.pplr:checked').closest('tr').find('td').each(function(){
            var id = $(this).attr('data-id');
            $('#'+id).val($.trim($(this).text()));
        });
    });
  });
// 品牌录入2
$(document).ready(function(){
    $('#addppp').click(function(){  
      $('.pplr1:checked').closest('tr').find('td').each(function(){
            var id = $(this).attr('data-id');
            $('#'+id).val($.trim($(this).text()));
        });
    });
  });
// 供应商录入
$(document).ready(function(){
    $('#addgys').click(function(){  
      $('.gyslr:checked').closest('tr').find('td').each(function(){
            var id = $(this).attr('data-id');
            $('#'+id).val($.trim($(this).text()));
        });
    });
  });
// 公司录入
$(document).ready(function(){
    $('#addgs').click(function(){  
      $('.gslr:checked').closest('tr').find('td').each(function(){
            var id = $(this).attr('data-id');
            $('#'+id).val($.trim($(this).text()));
        });
    });
  });

// 仓库录入
$(document).ready(function(){
    $('#addcklr').click(function(){  
      $('.cklr:checked').closest('tr').find('td').each(function(){
            var id = $(this).attr('data-id');
            $('#'+id).val($.trim($(this).text()));
        });
    });
  });

// input验证手机(一部手机)
function checkMobile(input) {
  var re = /^0?1[2|3|4|5|6|7|8|9][0-9]\d{8}$/;
  var value = input.value;
  if (value == '') {} else if (re.test(value)) {} else {
    SimplePop.alert("手机号码格式不正确!");
    $(input).val("");
  }
}
//两部手机
function checkMobile1(input) {
      var re = /^0?1[2|3|4|5|6|7|8|9][0-9]\d{8}$/;
      var value = input.value;
      var s="";
      if(value.length>11){
         s = value.indexOf(",");
      }
      if(s==-1){
          SimplePop.alert("多个电话号码之间用英文“,”隔开!");
          $(input).val(""); 
          return false;
      }
      if(value == ''){}else if(value.length==11){
          if(re.test(value)){}else{
          SimplePop.alert("手机号码格式不正确!");
          $(input).val("");
          }
      }else{
          if(re.test(value.substring(0,11)) && re.test(value.substring(12))){          
          }else{
              SimplePop.alert("手机号码格式不正确!");
              $(input).val(""); 
          }  
      }
}

// input验证电话号码(固定电话)
function checkPhone(input) {
  var re = /^0\d{2,3}-?\d{7,8}$/
  var value = input.value;
  if (value == '') {} else if (re.test(value)) {} else {
    SimplePop.alert("电话号码格式不正确!(区号+号码,区号以0开头,3位或4位)");
    $(input).val("");
  }
}

// input验证邮箱
function checkEmail(input) {
  var re = /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/
  var value = input.value;
  if (value == '') {} else if (re.test(value)) {} else {
    SimplePop.alert("邮箱格式错误!");
    $(input).val("");
  }
}
// 显示加载中
function showLoading(){
  // 添加遮罩层
  $('.overlay').remove();
  $('body').append('<div class="overlay"></div>');
  $(".overlay").css({'position':'fixed','top':'0','right':'0','bottom':'0','left':'0','z-index':'9998','width':'100%','height':'100%'});
  $(".overlay").css({'_padding':'0 20px 0 0','background':'#f6f4f5','display':'none'});
  $(".overlay").css({'display':'block','opacity':'0.8'});
  var h = $(document).height();
  $(".overlay").css({"height": h });

  // 添加提示层
  $('#AjaxLoading').remove();
  $('body').append('<div id="AjaxLoading" class="showbox"><div class="loadingWord"><img src="../resources/core/backgrounds/waiting.gif">加载中,请稍候...</div></div>');
  $('#AjaxLoading').css({'border':'1px solid #8CBEDA','color':'#37a','font-size':'12px','font-weight':'bold'});
  $('#AjaxLoading .loadingWord').css({'width':'180px','line-height':'50px','border':'2px solid #D6E7F2','background':'#fff'});
  $('#AjaxLoading img').css({'margin':'10px 15px','float':'left','display':'inline'});
  $('.showbox').css({'position':'fixed','top':'300px','left':'50%','z-index':'9999','opacity':'0','filter':'alpha(opacity=0)','margin-left':'-80px'});
  $(".overlay,.showbox").css({'position':'absolute','top':'expression(eval(document.documentElement.scrollTop))'});
  
  $(".showbox").stop(true).animate({'opacity':'1'},200);
}
// 隐藏加载中
function clearLoading(){
  $(".showbox").stop(true).animate({'opacity':'0'},400);
  $(".overlay").css({'display':'none','opacity':'0'});
  $("#AjaxLoading").css({'display':'none','opacity':'0'});
}
$(document).ready(function(){
  $(".action").click(function(){
    showLoading();
    setTimeout(function(){
      clearLoading();
    },800);
    
  });
  
});


// input输入框输入限制
 $(document).ready(function(){
//输入数字自动添加小数点后1位  
  $(".e_de1").change(function(){
    if(this.value.indexOf('.')==-1&&this.value!=''){
      this.value+='.0';
    }
  });
//输入数字自动添加小数点后2位  
  $(".e_de2").change(function(){
    if(this.value.indexOf('.')==-1&&this.value!=''){
      this.value+='.00';
    }
  });
//输入数字自动添加小数点后3位  
  $(".e_de3").change(function(){
    if(this.value.indexOf('.')==-1&&this.value!=''){
      this.value+='.000';
    }
  });
//输入数字自动添加小数点后4位  
  $(".e_de4").change(function(){
    if(this.value.indexOf('.')==-1&&this.value!=''){
      this.value+='.0000';
    }
  });
//输入数字自动添加小数点后5位  
  $(".e_de5").change(function(){
    if(this.value.indexOf('.')==-1&&this.value!=''){
      this.value+='.00000';
    }
  });
//输入数字自动添加小数点后6位  
  $(".e_de6").change(function(){
    if(this.value.indexOf('.')==-1&&this.value!=''){
      this.value+='.000000';
    }
  });
//输入数字自动添加小数点后7位  
  $(".e_de7").change(function(){
    if(this.value.indexOf('.')==-1&&this.value!=''){
      this.value+='.0000000';
    }
  });
//输入数字自动添加小数点后8位  
  $(".e_de8").change(function(){
    if(this.value.indexOf('.')==-1&&this.value!=''){
      this.value+='.00000000';
    }
  });      
//输入数字自动添加小数点后9位  
  $(".e_de9").change(function(){
    if(this.value.indexOf('.')==-1&&this.value!=''){
      this.value+='.000000000';
    }
  });

  $(".e_de1,.e_de2,.e_de3,.e_de4,.e_de5,.e_de6,.e_de7,.e_de8,.e_de9").keyup(function(){
    var tmptxt = $(this).val();
    $(this).val(tmptxt.replace(/[^(\d|\.)]/g, ''));
  });
      
  //文本框只能输入数字
  $("input[class='e_number']").keyup(function() {
    var tmptxt = $(this).val();
    $(this).val(tmptxt.replace(/[^\(\d|\.)]/g, ''));
  }).bind("paste", function() {
    var el = $(this);
    setTimeout(function() {
    var text = $(el).val();
    el.val(text.replace(/[^\(\d|\.)]/g, ''));
    }, 100);
  //   var tmptxt = $(this).val();
  //   $(this).val(tmptxt.replace(/[^(\d|\.)]/g, ''));
   }).css("ime-mode", "disabled"); 
  
//文本框只能输入数字(可以负数)
  $("input[class='e_number_e']").keyup(function() {
    var tmptxt = $(this).val();
    $(this).val(tmptxt.replace(/[^\-?(\d|\.)]/g, ''));
  }).bind("paste", function() {
    var el = $(this);
    setTimeout(function() {
    var text = $(el).val();
    el.val(text.replace(/[^\-?(\d|\.)]/g, ''));
    }, 100);
  //   var tmptxt = $(this).val();
  //   $(this).val(tmptxt.replace(/[^(\d|\.)]/g, ''));
   }).css("ime-mode", "disabled"); 
//文本框只能输入数字和英文(禁止输入中文)
  $("input[class='e_inqqrqw']").keyup(function() {
    var tmptxt = $(this).val();
    $(this).val(tmptxt.replace(/[\W]/g,''));
  }).bind("paste", function() {
    var el = $(this);
    setTimeout(function() {
    var text = $(el).val();
    el.val(text.replace(/[\W]/g,''));
    }, 100);
  //   var tmptxt = $(this).val();
  //   $(this).val(tmptxt.replace(/[\W]/g,''));
   }).css("ime-mode", "disabled"); 

//inupt只能输入整数
  $("input[class='e_integer']").keyup(function() {
   if(this.value.length==1){
    this.value=this.value.replace(/[^1-9]/g,'')
  }else{
    this.value=this.value.replace(/\D/g,'')
  } 
});

  //文本框只能输入大于0(不包括0)的正数
  $("input[class='e_greater']").keyup(function() {
    var tmptxt = $(this).val();
    $(this).val(tmptxt.replace(/^[^1-9]/, ''));
  }).bind("paste", function() {
    var el = $(this);
    setTimeout(function() {
    var text = $(el).val();
    el.val(text.replace(/[^\d\.]/g, ''));
    }, 100);
  //   var tmptxt = $(this).val();
  //   $(this).val(tmptxt.replace(/[^\d\.]/g, ''));
   }).css("ime-mode", "disabled"); 
  $("input[class='e_greater']").keyup(function() {
    var tmptxt = $(this).val();
    $(this).val(tmptxt.replace(/[^\d\.]/g, ''));
  }); 

  //文本框只能输入英文字母
  $("input[class='e_nber']").keyup(function() {
    var tmptxt = $(this).val();
    $(this).val(tmptxt.replace(/[^\a-zA-Z]/g,''));
  }).bind("paste", function() {
    var el = $(this);
    setTimeout(function() {
    var text = $(el).val();
    el.val(text.replace(/[^\a-zA-Z]/g,''));
    }, 100);
  //   var tmptxt = $(this).val();
  //   $(this).val(tmptxt.replace(/[^\a-zA-Z]/g,''));
   }).css("ime-mode", "disabled"); 

 //inupt只能输入负数
$("input[class='e_inr']").keyup(function() {
     var tmptxt = $(this).val();
     $(this).val(tmptxt.replace(/^[^1-9][\d]?$/, ''));
      if (!isNaN(this.value)) {
        if (this.value > 0) {
          this.value = 0-this.value;
        };
      } else {
        this.value = '';
      };
  })

//inupt只能输入负数和0
$("input[class='e_inrqw']").keyup(function() {
     var tmptxt = $(this).val();
      if (!isNaN(this.value)) {
        if (this.value > 0) {
          this.value = 0-this.value;
        };
      } else {
        this.value = '';
      };
  })

////清除文本框里的空格
//  $("input").keyup(function() {
//    var tmptxt = $(this).val();
//    $(this).val(tmptxt.replace(/[ ]/g,''));
//  })
});

//input只能输入1位小数点
  function e_limit1(obj){
    if(obj.value==obj.value2)
      return;
    if(obj.value.search(/^\d*(?:\.\d{0,1})?$/)==-1)
      obj.value=(obj.value2)?obj.value2:'';
    else obj.value2=obj.value;
  }
  //input只能输入2位小数点
  function e_limit2(obj){
    if(obj.value==obj.value2)
      return;
    if(obj.value.search(/^\d*(?:\.\d{0,2})?$/)==-1)
      obj.value=(obj.value2)?obj.value2:'';
    else obj.value2=obj.value;
  }
  //input只能输入3位小数点
  function e_limit3(obj){
    if(obj.value==obj.value2)
      return;
    if(obj.value.search(/^\d*(?:\.\d{0,3})?$/)==-1)
      obj.value=(obj.value2)?obj.value2:'';
    else obj.value2=obj.value;
  }
  //input只能输入4位小数点
  function e_limit4(obj){
    if(obj.value==obj.value2)
      return;
    if(obj.value.search(/^\d*(?:\.\d{0,4})?$/)==-1)
      obj.value=(obj.value2)?obj.value2:'';
    else obj.value2=obj.value;
  }
 // 时间控件--年月日
      $(document).ready(function(){
      $('.e_ymd').focus(function(){
          WdatePicker({
              dateFmt:'yyyy-MM-dd',
          });
        });
    });
 // 时间控件--年月日时分秒
      $(document).ready(function(){
      $('.e_ymdhms').focus(function(){
          WdatePicker({
              dateFmt:'yyyy-MM-dd HH:mm:ss',
          });
        });
    }); 
      $(document).ready(function() {
            $('.e_yyyy').focus(function() {
                WdatePicker({
                    dateFmt : 'yyyy',
                });
            });
        });
        $(document).ready(function() {
            $('.e_MM').focus(function() {
                WdatePicker({
                    dateFmt : 'MM',
                });
            });
        });

//input字段不能为空或者值超出最大值
 function cchecked(id){
     if(!checkEmpty(id))return false;
     if(!checkMaxNumberLength(id))return false;
     return true;
}  
function checkEmpty(id){
     var num=0;
     var str="";
     var name="";
     $("#"+id).find("input[type$='text'][msgg]").each(function(n){
          if($(this).val()=="")
          {
               num++;
               str+=$(this).attr("msgg")+"不能为空!\r\n";
          }
     });
     $("#"+id).find("select[msgg]").each(function(n){
          if($(this).val()=="")
          {
               num++;
               str+=$(this).attr("msgg")+"不能为空!\r\n";
          }
     });
     if(num>0){
          SimplePop.alert(str);
          return false;
     }
     else{
          return true;
     }
}
function checkMaxNumberLength(id){
    var str="";
    var value=0;
    var length = 0;
    var objStr = "";
    var maxnum = 0;
    $("#"+id).find("input[maxnumLength]").each(function(n){
        length = Number($(this).attr("maxnumLength"));
        value = Number(conver2number($(this).val()));
        objStr = $(this).attr("msg");
        objStr = objStr == undefined?$(this).attr("msgg"):objStr;
        objStr = objStr == undefined?$(this).parent().prev().text():objStr;
        objStr = objStr == undefined?$(this).attr("name"):objStr;
        if(isNaN(value)){
            str += objStr+"应为整数位不大于"+length+"位以内的数字!\r\n";
            return true;
        }
        if(!isNaN(length)){
            maxnum = Math.pow(10,length);
            if(value>=maxnum||value<=(0-maxnum)){
                str += objStr+"的值,整数位有效数字超出"+length+"位,无法保存!\r\n";
            }
        }
    });
    if(str.length>0){
         SimplePop.alert(str);
         return false;
    }
    return true;
}
/**
 * 转数字
 */
function conver2number(num,replaceValue){
    num = Number(num.replace(/,/gi,''));
    if(isNaN(num)){
        if(replaceValue!=undefined){
            return replaceValue; 
        }
        return 0
    }else{
        return num;
    }
}

/* *
 * jQuery SimplePop
 * IE 7+
 * @date 2014-11-24 13:19:36
 * https://www.sucaijiayuan.com
 * */
 // 温馨提示消息弹窗js
"use strict";
var SimplePop = {
  alert: function(msg, arg) {
    var alertDefaults = {
      popType: "alert",
      title: "温馨提示",
      content: "<div class='layer_msg'><p>" + (msg === undefined ? "" : msg) + "</p><button id='simplePopBtnSure' type='button'>确定</button></div>",
      callback: function() {
        
      }
    };
    var opt = $.extend({}, this._defaults, alertDefaults, arg);
    this._creatLayer(opt)
  },
  confirm: function(msg, arg) {
    var confirmDefaults = {
      popType: "confirm",
      title: "温馨提示",
      content: "<div class='layer_msg'><p>" + (msg === undefined ? "" : msg) + "</p><button id='simplePopBtnSure' type='button'>确定</button><button id='SimplePopBtncancel' type='button'>取消</button></div>",
      cancel: function() {
        
      },
      confirm: function() {
        
      }
    };
    var opt = $.extend({}, this._defaults, confirmDefaults, arg);
    this._creatLayer(opt)
  },
  prompt: function(msg, arg) {
    var promptDefaults = {
      popType: "prompt",
      title: "温馨提示",
      content: "<div class='layer_msg'><p>" + (msg === undefined ? "" : msg) + "</p><div><input type='text' /></div><button id='simplePopBtnSure' type='button'>确定</button><button id='SimplePopBtncancel' type='button'>取消</button></div>",
      cancel: function() {
        
      },
      confirm: function(value) {
        
      }
    };
    var opt = $.extend({}, this._defaults, promptDefaults, arg);
    this._creatLayer(opt)

  },
  closeSimplePop: function() {
    this._closeLayer();
  },
  _defaults: {
    icon: "",
    title: "",
    content: "",
    width: 0,
    height: 0,
    background: "#000",
    opacity: 0.5,
    duration: "normal",
    showTitle: true,
    escClose: true,
    popMaskClose: false,
    drag: true,
    dragOpacity: 1,
    popType: "alert",
    type: "info"
  },
  _creatLayer: function(opt) {
    var self = this;
    $(".popMask").empty().remove();
    $(".popMain").empty().remove();
    $("body").append("<div class='popMask'></div>");
    var $mask = $(".popMask");
    $mask.css({
      "background-color": opt.background,
      filter: "alpha(opacity=" + opt.opacity * 100 + ")",
      "-moz-opacity": opt.opacity,
      opacity: opt.opacity
    });
    opt.popMaskClose &&
      $mask.bind("click", function() {
        self._closeLayer()
      });
    opt.escClose && $(document).bind("keyup", function(e) {
      try {
        e.keyCode == 27 && self._closeLayer()
      } catch (f) {
        self._closeLayer()
      }
    });
    $mask.fadeIn(opt.duration);
    var wrap = "<div class='popMain'>";
    wrap += "<div class='popTitle'>" + (opt.icon !== undefined && opt.icon !== "" ? "<img class='icon' src='" +
      opt.icon + "' />" : "") + "<span class='text'>" + opt.title + "</span><span class='close'>&times;</span></div>";
    wrap += "<div class='popContent'>" + opt.content + "</div>";
    wrap += "</div>";
    $("body").append(wrap);
    var $popMain = $(".popMain");
    $popMain.find('.layer_msg').addClass(opt.type + '_icon')
    var $popTitle = $(".popTitle");
    var $popContent = $(".popContent");
    opt.showTitle ? $popTitle.show() : $popTitle.hide();
    opt.width !== 0 && $popTitle.width(opt.width);
    $(".popTitle .close").bind("click", function() {
      $mask.fadeOut(opt.duration);
      $popMain.fadeOut(opt.duration);
      $popMain.attr("isClose", "1");
      opt.type == "container" && $(opt.targetId).empty().append(opt.content);
    });
    opt.width !== 0 && $popContent.width(opt.width);
    opt.height !== 0 && $popContent.height(opt.height);
    $popMain.css({
      left: $(window).width() / 2 - $popMain.width() / 2 + "px",
      top: $(window).height() / 2 - $popMain.height() / 2 + "px"
    });
    $(window).resize(function() {
      $popMain.css({
        left: $(window).width() / 2 - $popMain.width() / 2 + "px",
        top: $(window).height() / 2 - $popMain.height() / 2 + "px"
      })
    });
    opt.drag && this._drag(opt.dragOpacity)

    switch (opt.popType) {
      case "alert":
        $popMain.fadeIn(opt.duration, function() {
          $popMain.attr("style", $popMain.attr("style").replace("FILTER:", ""))
        });
        $("#simplePopBtnSure").bind("click", function() {
          opt.callback();
          self._closeLayer()
        });
        break;
      case "confirm":
        $popMain.fadeIn(opt.duration, function() {
          $popMain.attr("style", $popMain.attr("style").replace("FILTER:", ""))
        });
        $("#simplePopBtnSure").bind("click",
          function() {
            opt.confirm()
            self._closeLayer()
          });
        $("#SimplePopBtncancel").bind("click", function() {
          opt.cancel()
          self._closeLayer()
        });
        break;
      case "prompt":
        $popMain.fadeIn(opt.duration, function() {
          $popMain.attr("style", $popMain.attr("style").replace("FILTER:", ""))
        });
        $("#simplePopBtnSure").bind("click",
          function() {
            opt.confirm($(".layer_msg input").val())
            self._closeLayer()
          });
        $("#SimplePopBtncancel").bind("click", function() {
          opt.cancel()
          self._closeLayer()
        });
        break;
      default:
        break;
    }
  },
  _closeLayer: function() {
    $(".popTitle .close").triggerHandler("click")
  },
  _drag: function(d) {
    var isDown = false,
      b, g;
    $(".popTitle").bind("mousedown", function(e) {
      if ($(".popMain:visible").length > 0) {
        isDown = true;
        b = e.pageX - parseInt($(".popMain").css("left"), 10);
        g = e.pageY - parseInt($(".popMain").css("top"), 10);
        $(".popTitle").css({
          cursor: "move"
        })
      }
    });
    $(document).bind("mousemove", function(e) {
      if (isDown && $(".popMain:visible").length > 0) {
        d != 1 && $(".popMain").fadeTo(0, d);
        var f = e.pageX - b;
        e = e.pageY - g;
        if (f < 0) f = 0;
        if (f > $(window).width() - $(".popMain").width()) f = $(window).width() - $(".popMain").width() - 2;
        if (e <
          0) e = 0;
        if (e > $(window).height() - $(".popMain").height()) e = $(window).height() - $(".popMain").height() - 2;
        $(".popMain").css({
          top: e,
          left: f
        })
      }
    }).bind("mouseup", function() {
      if ($(".popMain:visible").length > 0) {
        isDown = false;
        d != 1 && $(".popMain").fadeTo(0, 1);
        $(".popTitle").css({
          cursor: "auto"
        })
      }
    })
  }
}


function SimplePopConfirm(msg,funSimp){
  SimplePop.confirm(msg,{
        type: "error",
        cancel: function(){
        },
        //确定按钮回调
        confirm: function(){
            funSimp();
        }
    });
}



function SimplePop4Confirm(msg,Func){
  var args = new Array();
  for(i=2;i<arguments.length;i++){
    args[i-2] =arguments[i];
  }
  SimplePop.confirm(msg,{
    type: "info",
    confirm: function(){
      Func(args);
    }
  })
}

 

posted @ 2017-04-12 15:26  多弗朗明哥  阅读(2408)  评论(0编辑  收藏  举报