自定义验证规则不适用于Webix Colorpicker

问题描述 投票:0回答:1

我正在使用webix作为我的JavaScript前端。

我创建了一个带有colorpicker视图的表单。在Webix中,默认情况下,colorpicker仅允许用户从预先选择的颜色范围中进行选择,并返回所选颜色的十六进制代码。

可以忽略此行为,以允许使用选项editable: true输入任何颜色。但是,editable: true允许用户将任何内容输入colorpicker,就好像是自由文本字段一样。

我正在尝试使用自定义验证来解决此问题。我应该能够在自定义验证功能中返回false,以警告用户用户无效的值,并防止在表单修复之前保存表单。但是,自定义验证函数在colorpicker上使用时永远不会被调用。

以下是我正在尝试的webix代码段:https://snippet.webix.com/28oadxzl

webix.ui({
    view:"form",
    id: "theForm",
    name: "theForm",
    elements:[
        {
            view:"colorpicker",
            label:"color",
            name:"color",
            id: "color",
            editable: true,
            validate: webix.rules.iscolor,
            on:  {
                onChange:  function(newv, oldv)  {
                    // this gets called every time the color picker is changed.
                    webix.message({text: "onChange: " + newv})
                    this.validate();
                }
            }
        },
        {
            view:"button",
            type:"form",
            value:"ok",
            width:200,
            align:"right",
            click: function()  {
                // this gets called when the "ok" button is clicked.
                webix.message({text: "click"});
                $$("theForm").validate();
            }
        }
    ],
    rules:  {
        iscolor:  function(value)  {
            // never gets called!  Should be called on colorpicker change and on "ok" click.
            return false;  // replace with regex hexcode validation.
            webix.message({text: "iscolor: " + value})
        }
    }
});

我正在使用webix作为我的JavaScript前端。我创建了一个带有颜色选择器视图的表单。在Webix中,默认情况下,颜色选择器仅允许用户从预先选择的颜色范围中进行选择,并且...

validation color-picker webix
1个回答
1
投票

您几乎是正确的:https://snippet.webix.com/4mw3mxk8

© www.soinside.com 2019 - 2024. All rights reserved.