• Uncaught TypeError: Cannot read property 'decimalSeparator' of undefined


    1、错误描述

    Uncaught TypeError: Cannot read property 'decimalSeparator' of undefined
    	at Object.NumberFormat (http://127.0.0.1:8020/jqGrid/js/jquery.jqGrid.min.js:477:24)
    	at HTMLTableElement.P [as updatepager] (http://127.0.0.1:8020/jqGrid/js/jquery.jqGrid.min.js:213:1149)
    	at N (http://127.0.0.1:8020/jqGrid/js/jquery.jqGrid.min.js:187:336)
    	at Object.success (http://127.0.0.1:8020/jqGrid/js/jquery.jqGrid.min.js:224:29)
    	at j (http://127.0.0.1:8020/jqGrid/js/jquery-1.11.0.min.js:2:27136)
    	at Object.fireWith [as resolveWith] (http://127.0.0.1:8020/jqGrid/js/jquery-1.11.0.min.js:2:27949)
    	at x (http://127.0.0.1:8020/jqGrid/js/jquery-1.11.0.min.js:4:22244)
    	at XMLHttpRequest.b (http://127.0.0.1:8020/jqGrid/js/jquery-1.11.0.min.js:4:26298)
    

    2、错误原因

     a.fmatter.util = {
            NumberFormat: function(b, c) {
                if (a.fmatter.isNumber(b) || (b *= 1), a.fmatter.isNumber(b)) {
                    var d, e = 0 > b,
                    f = String(b),
                    g = c.decimalSeparator || ".";
                    if (a.fmatter.isNumber(c.decimalPlaces)) {
                        var h = c.decimalPlaces,
                        i = Math.pow(10, h);
                        if (f = String(Math.round(b * i) / i), d = f.lastIndexOf("."), h > 0) for (0 > d ? (f += g, d = f.length - 1) : "." !== g && (f = f.replace(".", g)); f.length - 1 - d < h;) f += "0"
                    }
                    if (c.thousandsSeparator) {
                        var j = c.thousandsSeparator;
                        d = f.lastIndexOf(g),
                        d = d > -1 ? d: f.length;
                        var k, l = f.substring(d),
                        m = -1;
                        for (k = d; k > 0; k--) m++,
                        m % 3 === 0 && k !== d && (!e || k > 1) && (l = j + l),
                        l = f.charAt(k - 1) + l;
                        f = l
                    }
                    return f = c.prefix ? c.prefix + f: f,
                    f = c.suffix ? f + c.suffix: f
                }
                return b
            }
        },

    3、解决办法

         引入国际化jqGrid  js

    <script type="text/javascript" src="js/i18n/grid.locale-cn.js" ></script>

    4、附录

          grid.locale-cn.js

    /**
     * jqGrid Chinese Translation
     * 咖啡兔 yanhonglei@gmail.com 
     * http://www.kafeitu.me 
     * 
     * 花岗岩 marbleqi@163.com
     * 
     * Dual licensed under the MIT and GPL licenses:
     * http://www.opensource.org/licenses/mit-license.php
     * http://www.gnu.org/licenses/gpl.html 
    **/
    /*global jQuery, define */
    (function( factory ) {
    	"use strict";
    	if ( typeof define === "function" && define.amd ) {
    		// AMD. Register as an anonymous module.
    		define([
    			"jquery",
    			"../grid.base"
    		], factory );
    	} else {
    		// Browser globals
    		factory( jQuery );
    	}
    }(function( $ ) {
    
    $.jgrid = $.jgrid || {};
    if(!$.jgrid.hasOwnProperty("regional")) {
    	$.jgrid.regional = [];
    }
    $.jgrid.regional["cn"] = {
        defaults : {
            recordtext: "第{0}到第{1}条u3000共 {2} 条", // 共字前是全角空格
            emptyrecords: "没有记录!",
            loadtext: "读取中...",
    	savetext: "保存中...",
            pgtext : "第{0}页u3000共{1}页",
    		pgfirst : "第一页",
    		pglast : "最后一页",
    		pgnext : "下一页",
    		pgprev : "上一页",
    		pgrecs : "每页记录数",
    		showhide: "切换 展开 折叠 表格",
    		// mobile
    		pagerCaption : "表格::页面设置",
    		pageText : "Page:",
    		recordPage : "每页记录数",
    		nomorerecs : "没有更多记录...",
    		scrollPullup: "加载更多...",
    		scrollPulldown : "刷新...",
    		scrollRefresh : "滚动刷新..."
        },
        search : {
            caption: "搜索...",
            Find: "查找",
            Reset: "重置",
            odata: [{ oper:'eq', text:'等于u3000u3000'},{ oper:'ne', text:'不等于u3000'},{ oper:'lt', text:'小于u3000u3000'},{ oper:'le', text:'小于等于'},{ oper:'gt', text:'大于u3000u3000'},{ oper:'ge', text:'大于等于'},{ oper:'bw', text:'开头是'},{ oper:'bn', text:'开头不是'},{ oper:'in', text:'属于u3000u3000'},{ oper:'ni', text:'不属于'},{ oper:'ew', text:'结尾是'},{ oper:'en', text:'结尾不是'},{ oper:'cn', text:'包含u3000u3000'},{ oper:'nc', text:'不包含'},{ oper:'nu', text:'为空'},{ oper:'nn', text:'不为空'}, {oper:'bt', text:'区间'}],
            groupOps: [ { op: "AND", text: "满足所有条件" },    { op: "OR",  text: "满足任一条件" } ],
    		operandTitle : "单击进行搜索。",
    		resetTitle : "重置搜索条件",
    		addsubgrup : "添加条件组",
    		addrule : "添加条件",
    		delgroup : "删除条件组",
    		delrule : "删除条件"		
        },
        edit : {
            addCaption: "添加记录",
            editCaption: "编辑记录",
            bSubmit: "提交",
            bCancel: "取消",
            bClose: "关闭",
            saveData: "数据已修改,是否保存?",
            bYes : "是",
            bNo : "否",
            bExit : "取消",
            msg: {
                required:"此字段必需",
                number:"请输入有效数字",
                minValue:"输值必须大于等于 ",
                maxValue:"输值必须小于等于 ",
                email: "这不是有效的e-mail地址",
                integer: "请输入有效整数",
                date: "请输入有效时间",
                url: "无效网址。前缀必须为 ('http://' 或 'https://')",
                nodefined : " 未定义!",
                novalue : " 需要返回值!",
                customarray : "自定义函数需要返回数组!",
                customfcheck : "必须有自定义函数!"
            }
        },
        view : {
            caption: "查看记录",
            bClose: "关闭"
        },
        del : {
            caption: "删除",
            msg: "删除所选记录?",
            bSubmit: "删除",
            bCancel: "取消"
        },
        nav : {
            edittext: "",
            edittitle: "编辑所选记录",
            addtext:"",
            addtitle: "添加新记录",
            deltext: "",
            deltitle: "删除所选记录",
            searchtext: "",
            searchtitle: "查找",
            refreshtext: "",
            refreshtitle: "刷新表格",
            alertcap: "注意",
            alerttext: "请选择记录",
            viewtext: "",
            viewtitle: "查看所选记录",
    		savetext: "",
    		savetitle: "保存记录",
    		canceltext: "",
    		canceltitle : "取消编辑记录",
    		selectcaption : "操作..."
        },
        col : {
            caption: "选择列",
            bSubmit: "确定",
            bCancel: "取消"
        },
        errors : {
            errcap : "错误",
            nourl : "没有设置url",
            norecords: "没有需要处理的记录",
            model : "colNames 和 colModel 长度不等!"
        },
        formatter : {
            integer : {thousandsSeparator: ",", defaultValue: '0'},
            number : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, defaultValue: '0.00'},
            currency : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
            date : {
                dayNames:   [
                    "日", "一", "二", "三", "四", "五", "六",
                    "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六",
                ],
                monthNames: [
                    "一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二",
                    "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"
                ],
                AmPm : ["am","pm","上午","下午"],
                S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},
                srcformat: 'Y-m-d',
                newformat: 'Y-m-d',
                parseRe : /[#%\/:_;.,	s-]/,
                masks : {
                    // see http://php.net/manual/en/function.date.php for PHP format used in jqGrid
                    // and see http://docs.jquery.com/UI/Datepicker/formatDate
                    // and https://github.com/jquery/globalize#dates for alternative formats used frequently
                    // one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many
                    // information about date, time, numbers and currency formats used in different countries
                    // one should just convert the information in PHP format
                    ISO8601Long:"Y-m-d H:i:s",
                    ISO8601Short:"Y-m-d",
                    // short date:
                    //    n - Numeric representation of a month, without leading zeros
                    //    j - Day of the month without leading zeros
                    //    Y - A full numeric representation of a year, 4 digits
                    // example: 3/1/2012 which means 1 March 2012
                    ShortDate: "n/j/Y", // in jQuery UI Datepicker: "M/d/yyyy"
                    // long date:
                    //    l - A full textual representation of the day of the week
                    //    F - A full textual representation of a month
                    //    d - Day of the month, 2 digits with leading zeros
                    //    Y - A full numeric representation of a year, 4 digits
                    LongDate: "l, F d, Y", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy"
                    // long date with long time:
                    //    l - A full textual representation of the day of the week
                    //    F - A full textual representation of a month
                    //    d - Day of the month, 2 digits with leading zeros
                    //    Y - A full numeric representation of a year, 4 digits
                    //    g - 12-hour format of an hour without leading zeros
                    //    i - Minutes with leading zeros
                    //    s - Seconds, with leading zeros
                    //    A - Uppercase Ante meridiem and Post meridiem (AM or PM)
                    FullDateTime: "l, F d, Y g:i:s A", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy h:mm:ss tt"
                    // month day:
                    //    F - A full textual representation of a month
                    //    d - Day of the month, 2 digits with leading zeros
                    MonthDay: "F d", // in jQuery UI Datepicker: "MMMM dd"
                    // short time (without seconds)
                    //    g - 12-hour format of an hour without leading zeros
                    //    i - Minutes with leading zeros
                    //    A - Uppercase Ante meridiem and Post meridiem (AM or PM)
                    ShortTime: "g:i A", // in jQuery UI Datepicker: "h:mm tt"
                    // long time (with seconds)
                    //    g - 12-hour format of an hour without leading zeros
                    //    i - Minutes with leading zeros
                    //    s - Seconds, with leading zeros
                    //    A - Uppercase Ante meridiem and Post meridiem (AM or PM)
                    LongTime: "g:i:s A", // in jQuery UI Datepicker: "h:mm:ss tt"
                    SortableDateTime: "Y-m-d\TH:i:s",
                    UniversalSortableDateTime: "Y-m-d H:i:sO",
                    // month with year
                    //    Y - A full numeric representation of a year, 4 digits
                    //    F - A full textual representation of a month
                    YearMonth: "F, Y" // in jQuery UI Datepicker: "MMMM, yyyy"
                },
                reformatAfterEdit : false,
    			userLocalTime : false
            },
            baseLinkUrl: '',
            showAction: '',
            target: '',
            checkbox : {disabled:true},
            idName : 'id'
        },
    	colmenu : {
    		sortasc : "升序排序",
    		sortdesc : "降序排序",
    		columns : "列",
    		filter : "筛选",
    		grouping : "分类",
    		ungrouping : "取消分类",
    		searchTitle : "查找:",
    		freeze : "冻结",
    		unfreeze : "取消冻结",
    		reorder : "重新排序"
    	}
    };
    }));
    


  • 相关阅读:
    背包问题
    阶乘尾数0的个数
    欧拉筛找素数
    威佐夫博弈
    三角形面积
    deleted
    deleted
    deleted
    deleted
    deleted
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13313962.html
Copyright © 2020-2023  润新知