我正在使用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中,默认情况下,颜色选择器仅允许用户从预先选择的颜色范围中进行选择,并且...