【v17】单元格的maxlength
我现在有一个单元格,它的style是dropDowns.dateTimePicker,我现在想实现让这个单元格只能输入6位,在focusin的状态的时候,最多只能输6位,再输的话就不让多余的值放入单元格,该怎么实现
或者说,spreadJs有在单元格内每输入一个字符,不需要focusout就触发的方法吗
您可以使用mask,代码如下:
style = new GC.Spread.Sheets.Style();
style.mask = {
pattern: "yyyymmdd"
};
sheet.setStyle(1, 1, style);
您好!2楼热心用户提供的方法很可行,我再给您提供另外一种方式。您打开思路,酌情使用即可。
可以尝试监听EditChange事件,监听到的输入值被记录在参数editingText中,判断该属性值的长度是否等于6即可。
除此之外,需要先判断当前单元格的Style中的cellButtons的command是否为openDateTimePicker。可以参考如下代码:
sheet.bind(GC.Spread.Sheets.Events.EditChange, function(e, args) {
console.log('edit change, args: ', args);
var style = sheet.getStyle(args.row, args.col);
if (style && style.cellButtons && style.cellButtons.command === 'openDateTimePicker') {
if (args.editingText && args.editingText.length === 6) {
console.log('长度超限');
sheet.endEdit();
}
}
}); Wilson.Zhang 发表于 2024-12-19 17:33
您好!2楼热心用户提供的方法很可行,我再给您提供另外一种方式。您打开思路,酌情使用即可。
可以尝试 ...
用mask的话,单元格内未输入的部分有下划线,这个可以去掉吗
Wilson.Zhang 发表于 2024-12-19 17:33
您好!2楼热心用户提供的方法很可行,我再给您提供另外一种方式。您打开思路,酌情使用即可。
可以尝试 ...
用了excludePlaceholder: true之后解决了,感谢 香香 发表于 2024-12-19 17:30
您可以使用mask,代码如下:
太帅了,感谢 小磯健二 发表于 2024-12-20 10:14
用了excludePlaceholder: true之后解决了,感谢
:hjyzw:
解决了就好,您可以参考官网产品文档了解掩码模式对日期和数值的支持:
https://demo.grapecity.com.cn/spreadjs/help/docs/features/cells/inputmask#site_main_content-doc-content_title
那就结贴了。如有新问题,欢迎发新帖沟通。
页:
[1]