Handsontable密码渲染器

时间:2015-02-04 12:45:53

标签: renderer handsontable

我尝试根据该行的值将PasswordRenderer应用于特定的行和列。

所以我的自定义渲染器看起来像这样 -

function firstRowRenderer(instance, td, row, col, prop, value, cellProperties) {
Handsontable.renderers.PasswordRenderer.apply(this, arguments); }

然而,我面临的问题是,在编辑单元格时,该字段不再被屏蔽。以下是一个示例 - http://jsfiddle.net/whxbv6xh/

如果您尝试编辑该表的第一行,则不会屏蔽这些值。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

该领域的“揭露”是PasswordRenderer基本上所有的内容。如果您希望根本无法看到原始值,则至少有两个选项:

1.事先转换标题行的值:

function renderAsPassword(password) {
  return new Array(password.length + 1).join('*');
}
alert(['', 'Kia', 'Nissan', 'Toyota', 'Honda'].map(renderAsPassword));

2.创建自定义编辑器,扩展内置PasswordEditor

var PasswordEditor = Handsontable.editors.PasswordEditor.prototype.extend();

PasswordEditor.prototype.getValue = function() {
    return renderAsPassword(this.TEXTAREA.value);
};

PasswordEditor.prototype.setValue = function(newValue){
    this.TEXTAREA.value = renderAsPassword(newValue);
};