У меня есть это поле выбора в табуляторе, где 2 из 4 опций должны быть включены на основе другого поля в таблице. Чтобы проверить правильность ввода, я создал свою собственную проверку. Моя проблема заключается в том, что эта проверка проверяет старый ввод вместо нового ввода.
Рассматриваемый столбец определяется следующим образом:
{
title: "Type",
field: "thresholdtype",
width: 150,
align: "center",
formatter: symbolTranslator,
editor: "select",
editorParams: [
{
label:"Gelijk Aan",
value:"==",
},
{
label:"Groter Gelijk",
value:">=",
},
{
label:"Kleiner Gelijk",
value:"<=",
},
{
label:"Ongelijk aan",
value:"<>",
}
],
validator: validationCheck
}
Проверка проверки сначала проверяет, является ли ввод в другой столбец - это строка или целое число. На основании этой информации параметры должны стать доступными / недоступными. Функция, которая решает это, выглядит следующим образом:
var validationCheck = function(cell, value, parameters){
let row = cell.getRow();
let host = row.getCell("host").getValue();
let hostgroep = row.getCell("hostgroep").getValue();
let service = row.getCell("servicename").getValue();
let perfdata = row.getCell("perfname").getValue();
let isString = isStringValidateTabulator(host, hostgroep, service, perfdata);
let thresholdType = table.getRow(row).getCell("thresholdtype").getValue();
let validationStatus = true;
if(!thresholdType){
validationStatus = false;
}
else if (isString > 0) {
if (thresholdType == ">=" || thresholdType == "<="){
validationStatus = false;
//Pick (On)Gelijk Aan
}
}
else {
if(thresholdType == "<>" || thresholdType == "=="){
validationStatus = false;
//Pick Groter of Kleiner Dan
}
}
return validationStatus;
С этим кодом табулятор проверяет значение полей выбора ДО того, как оно будет изменено. Оставив новое значение без проверки.
Что-то не так с моим кодом или это просто, как работает Tabulator?