【发布时间】:2020-03-10 13:07:12
【问题描述】:
当我使用 jqGrid 添加或编辑记录时,我需要为某些列创建电话掩码(我的 jqGrid 版本是 4.5.4)。
在我的代码下面:
this.montarGRID = function (p_gridName, p_dados, p_header, p_descriptor, p_contentName, p_primaryKey, p_filtroGrid) {
jQuery("#" + p_gridName).jqGrid( {
data : p_dados,
datatype : "local",
sortable : true,
colNames : p_header,
colModel : p_descriptor,
...
这个网格是动态生成的。我传递了一个带有 colModel 内容的 json。
[
{"formatter":"integer","index":"id","hidden":true,"sortable":true,"sorttype":"integer","width":75,"align":"center","name":"id"},
{"formatter":"telefone","index":"TELCONTATO01","search":true,"hidden":false,"sorttype":"text","sortable":true,"width":0,"align":"right","name":"TELCONTATO01","editoptions":{"text":true,"required":false,"dataInit":"function (elem) { return mostra_telefone(elem); }"},"editrules":{"text":true,"required":false,"dataInit":"function (elem) { return mostra_telefone(elem); }"},"editable":true},
{"formatter":"telefone","index":"TELCONTATO02","search":true,"hidden":false,"sorttype":"text","sortable":true,"width":0,"align":"right","name":"TELCONTATO02","editoptions":{"text":true,"required":false,"dataInit":"function (elem) { return mostra_telefone(elem); }"},"editrules":{"text":true,"required":false,"dataInit":"function (elem) { return mostra_telefone(elem); }"},"editable":true}
]
生成电话掩码的方法...
(function($) {
'use strict';
$.extend($.fn.fmatter, {
mostra_telefone : function (elem) {
$(elem).mask("(99)9999-9999?");
}
});
})(jQuery);
但当我选择、更改或添加记录时,它永远不会被调用。
【问题讨论】:
-
让我问一些问题。将电话源数据传递到网格时如何看待它?您希望如何在网格中显示?您希望在编辑时如何显示和检查。 示例答案:源电话字段是这样的:12345678。在网格中,我希望显示为“电话:12345678”,在内联编辑中编辑时,我希望显示为 (12)-345 -678 并检查是否输入正确。
-
源电话字段是 2899695910,在网格中我希望显示为 (28)9969-5910,并且在在线编辑中编辑时我希望显示为 (28)9969-5910,并且用户不能输入字母或超过 10 个数字
标签: javascript jquery jqgrid