如何使用制表符限制可编辑表中输入的最大长度?

如何解决如何使用制表符限制可编辑表中输入的最大长度?

当我使用maxLength:5验证程序时,没有将maxlength属性应用于<input />,因此用户可以超过限制。是否可以直接限制他们的输入,而不是让他们违反规则,然后不得不向他们解释出了什么问题?

我认为总体上来说,这将是更好的UX,并且对于用户和开发人员而言都更容易。

此外,我尝试使用某些回调将maxlength手动添加<input />中,但是似乎其中任何一个触发时都不会创建输入。

编辑:这是我们正在使用的代码

    var table = new Tabulator("#datatable",{
        height: "480px",// set height of table (in CSS or here),this enables the Virtual DOM and improves render speed dramatically (can be any valid css height value)
        layout: "fitDataFill",columns: [{ "field": "ID","frozen": true,"title": "ID","validator": [] },{ "editor": "input","field": "NameEN","validator": ["maxLength:5"] }],addRowPos: "top",cellEdited: function (cell) {
            cell.validate();
            var element = cell.getElement();
            $(element).addClass('edited-cell');
            dispatch(actions.EDIT_DATA);
        },validationMode: "blocking",validationFailed: function (cell,value,validators) {
            var validationMessages = "";
            validators.forEach((validator) => {
                var message = $('#validation-' + validator.type).val() + "\n";
                validationMessages += message.replace('{value}',validator.parameters);
            });
            //cell - cell component for the edited cell
            //value - the value that Failed validation
            //validatiors - an array of validator objects that Failed
        },headerFilter: true
    });

解决方法

制表符中的验证和编辑系统是完全分开的。 Tabulator中的验证程序不会影响编辑器,一旦设置了值,便会应用它们。

一旦提交了编辑器上的值(在这种情况下,是由于单元格失去焦点),则将其提交给验证器函数,如果通过则进行更改,如果失败,则将单元格标记给用户无效,焦点便传回了单元格,这样他们就可以纠正错误。

如果要从物理上阻止用户输入超过5个字符,则需要在编辑器上进行设置:

{field:"NameEN",editor:"input",editorParams:{
    elementAttributes:{
        maxlength:"10",//set the maximum character length of the input element to 10 characters
    }
}}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?