Я недавно начал использовать диаграмму Ганта DHTMLX на основе JavaScript .У меня есть некоторые проблемы с фильтрами, которые я не чувствую, они связаны исключительно с самой диаграммой, но связаны с javascript.
Итак, диаграмма Ганта может быть отфильтрована с помощьюпередача в некоторых условиях через оператор if
и возврат true
, когда эти условия выполнены.Все значения моих условий поступают из выбора входов, эти входы представляют собой диапазоны.
<input type="text" class="k-textbox" id="bedsStart" />
<input type="text" class="k-textbox" id="bedsEnd" />
<input type="text" class="k-textbox" id="deckStart" />
<input type="text" class="k-textbox" id="deckEnd" />
<button type="button" id="filterSort">Set Filters</button>
Когда вы нажимаете кнопку фильтра, запускается событие нажатия, и значения собираются из полей ввода.
$("#filterSort").on("click", function (e) {
let bedsStart = $('#bedsStart').val();
let bedsEnd = $('#bedsEnd').val();
let deckStart = $('#deckStart').val();
let deckEnd = $('#deckEnd').val();
Эти значения затем передаются в качестве условий для фильтра в соответствии с документацией DHTMLX:
gantt.attachEvent("onBeforeTaskDisplay", function (id, task) {
if (task.crane >= craneStart && task.crane <= craneEnd) {
return true
}
return false;
});
gantt.init("ganttReport");
}
Проблема заключается в том, что если какой-либо из текстовых вводов пуст / пуст, тогда фильтр не работаети ничего не возвращает.Есть ли способ, которым я могу обработать эти значения NULL, не включая их или динамически указав, какие фильтры использовать?
Кажется, что фильтр способен только возвращать true
или false
, поэтому с несколькими if
операторы не работают, так как это всегда последний оператор, который доставит результат с перезаписью предыдущих итераций, т.е.
if(condition1)
{
return true
}
if(condition2)
{
return true
}
return false
Приведенный выше код не будет работать, и будет использоваться только условие2, поскольку условие1 будет перезаписано,Поэтому я не могу просто изложить свои условия таким образом или использовать if else
.
Может ли кто-нибудь предложить решение, как я могу передать все эти условия этому единственному утверждению, но обрабатывать нули?