代码改变世界

js编辑技术累积

2016-01-29 17:31  qqForever  阅读(222)  评论(0编辑  收藏  举报

1.当输入框发生改变时的方法。

$("#member").on('input',function(){
                 ...
         } );

2.数据保留两位小数。

price=price.toFixed(2)

3.改变价格(多条同样的标签,例如下面例子:)

实现方法:

//价格改变 
function changePrice(){
    //统计改变后的总价
     var price = 0;
     $("input[name$='.number']").each(function(){
        var realprice = parseFloat($(this).parent().next().children().first().val());
        if(isNaN(realprice)){
             price = price + 0;
         }else{
             price = price+parseInt($(this).val())*realprice;
         }
     });
     //订单总额
     price=price.toFixed(2);
     $("#price").val(price);
}

4.datagrid编辑框(numberbox)使用例子:

{field:'realPrice',title:'单价',sortable:true,width:80,
                    editor: {  
                            type: 'numberbox',  
                           options: {  
                                   max:100000,
                                   precision:2
                           }  
                    },  
                },

5.datagrid操作栏的显示

{field:'opt',title:'操作',width:50,align:'center',
                    formatter:function(value,rec,index){  
                        var d = '<a href="#" mce_href="#" onclick="delMainItem(\''+ index +'\')">删除</a> ';  
                        return d;  
                    }
                }

6.datagrid开始编辑和结束编辑:

//主项目信息的选中后的操作  ,开始编辑
    function selectMainItem(index){
        endEditing();
        $('#productList_selected').datagrid('beginEdit', index);
        var ed =$('#productList_selected').datagrid('getEditor', {index:index,field:'price'});
        $(ed.target).focus();
        editIndex = index;
    }

//结束表格编辑
    function endEditing(){
        if (editIndex == undefined){return true}
        if ($('#productList_selected').datagrid('validateRow', editIndex)){
            var ed_realPrice = $('#productList_selected').datagrid('getEditor', {index:editIndex,field:'price'});
            var ed_number = $('#productList_selected').datagrid('getEditor', {index:editIndex,field:'number'});
            var ed_supplier = $('#productList_selected').datagrid('getEditor', {index:editIndex,field:'supplier'});
            var ed_productDate = $('#productList_selected').datagrid('getEditor', {index:editIndex,field:'productDate'});
            var ed_validity = $('#productList_selected').datagrid('getEditor', {index:editIndex,field:'validity'});
            
            var realPrice = $(ed_realPrice.target).numberbox('getValue');
            var number = $(ed_number.target).numberbox('getValue');
            var supplier = $(ed_supplier.target).combobox('getValue');
            var productDate = $(ed_productDate.target).datebox('getValue');
            var validity = $(ed_validity.target).text('getValue');
            
            $('#productList_selected').datagrid('getRows')[editIndex]['realPrice'] = realPrice;
            $('#productList_selected').datagrid('getRows')[editIndex]['number'] = number;
            $('#productList_selected').datagrid('getRows')[editIndex]['supplier'] = supplier;
            $('#productList_selected').datagrid('getRows')[editIndex]['productDate'] = productDate;
            $('#productList_selected').datagrid('getRows')[editIndex]['validity'] = validity;
            $('#productList_selected').datagrid('endEdit', editIndex);
            editIndex = undefined;
            changePrice();
            return true;
        } else {
            return false;
        }
    }    

 

 

7.清空datagrid数据

function clearAllItemByType(){
        var rows = $('#itemList').datagrid('getRows');
        $.each(rows, function (index, item){
            $('#itemList').datagrid('deleteRow', 0);
        });
     }

8.datagrid计算价格

 var rowsOfSelected = $('#itemList_selected').datagrid('getRows');
        var price = 0;
        $.each(rowsOfSelected, function (index, item){
            var realPrice = item.realPrice;
            var number = item.number;
            if(realPrice != undefined && number != undefined){
                if(IsNum(realPrice) && IsNum(number)){
                    if(realPrice>=0 && number>=0){//为正数 
                        price += realPrice * number;
                    }
                }
            }
        });

 9.datagrid编辑器与combobox的结合使用

//供货商
    var supplier;

//获得供应商下拉框 
 function getSupplier(){
     var url = "inStockController.do?getSupplier";
        $.ajax({
            type : 'POST',
            url : url,
            async: false,
            success : function(data) {
                var d = $.parseJSON(data);
                if (d.success) {
                    supplier=d.msg;
                }
            },
            error:function (xhr, ajaxOptions, thrownError){
            }
        });
 }

//字符串转化为json格式
var json_supplier=eval(supplier);

function unitformatter(value, rowData, rowIndex) {
            if (value == 0) {
                return;
            }
            for (var i = 0; i < json_supplier.length; i++) {
                if (json_supplier[i].id == value) {
                    return json_supplier[i].name;
                }
            }
        }

{field:'supplier',title:'供应商',sortable:true,width:110,formatter: unitformatter,
                    panelHeight: 'auto',
                    editor: { 
                        type: 'combobox', 
                        options: {
                            data: json_supplier, 
                            valueField: "id", 
                            textField: "name",
                            panelHeight:"auto"
                        }
                     }
                },            

编辑器combobox后台代码展示:

public AjaxJson getSupplier(HttpServletRequest req) {
        AjaxJson j = new AjaxJson();
        String type="";
        try {
            List<SupplierEntity> supplierList=systemService.getList(SupplierEntity.class);
            for (SupplierEntity suppliers : supplierList) {
                type += "{'id':'"+suppliers.getId()+"','name':'"+suppliers.getName()+"'},";
            }
        } catch (Exception e) {
            e.printStackTrace();
            logger.info(e.getMessage());
            systemService.addLog(e.getMessage(), Globals.Log_Type_OTHER, Globals.Log_Leavel_ERROR);
        }
        String floor = "["+type+"]";
        // 设置提示信息
        j.setMsg(floor);
        return j;
    }