Jqgrid Masking电话号码应保存在相同的格式和位置

时间:2017-08-07 12:51:12

标签: jqgrid

我正在使用jquery.jqgrid版本v4.4.4,mvc 5。 在我的内联jqgrid中,我有电话号码colModel需要以美国电话号码格式掩码,我的代码看起来像,

{
        name: 'PhoneNumber', index: 'PhoneNumber', editable: true, sortable: true, width: 300, classes: "grid-col",           
        editoptions: { dataInit: function (elem) {
                $(elem).mask("?(999) 999-9999");
                $(this).val(elem);                  
            }
        }
},

如果我输入'(454)453-3233'字段(文本框)保存正确的值,并在数据库中正确保存为'4544533233'。要删除我使用的括号和超量,

 PhoneNumber = PhoneNumber.replace(/\D/g, ''); //Removes anything that is not a digit \D

问题是, 首先,如果我输入'(54)4 - 65'那么该字段格式化自己并保持(544)65这是错误的。

其次,现有的电话号码未被屏蔽,在没有屏蔽格式的网格中显示。

1)。如何使字段保持并保存输入与我输入的位置相同?

2)。如何以掩码格式显示现有的电话号码('4544533233'在db中存储)?

感谢。

1 个答案:

答案 0 :(得分:0)

colModel[{ name: 'DOB', width: 75, editable: true, formatter: dateFormatter, editoptions: { class: 'isDateField' } }]


//dateFormatter function to format before saving
 function dateFormatter(cellvalue, options, rowObject) {
            if (cellvalue !== undefined) {
                var formattedValue = (cellvalue.slice(0, 4) + '/' + cellvalue.slice(4, 6) + '/' + cellvalue.slice(6, 8));
                if (formattedValue==='//') {
                    return ('');
                }
                return formattedValue;
            }
        };
相关问题