首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用条件过滤javascript甘特图并处理空输入?

如何使用条件过滤javascript甘特图并处理空输入?
EN

Stack Overflow用户
提问于 2019-03-20 18:19:40
回答 1查看 181关注 0票数 0

我最近开始使用DHTMLX javascript based Gantt chart。我在过滤器方面遇到了一些问题,我觉得这些问题并不完全与图表本身相关,而是与javascript相关。

因此,甘特图chart can be filtered通过if语句传入一些条件,并在满足这些条件时返回true。我的所有条件值都来自一组输入,这些输入代表范围。

代码语言:javascript
复制
<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>

当您单击filter按钮时,将触发on click事件,并从输入字段收集这些值。

代码语言:javascript
复制
$("#filterSort").on("click", function (e) {        
    let bedsStart = $('#bedsStart').val();
    let bedsEnd = $('#bedsEnd').val();
    let deckStart = $('#deckStart').val();
    let deckEnd = $('#deckEnd').val();

然后根据DHTMLX中的文档将这些值作为条件传递给筛选器:

代码语言:javascript
复制
    gantt.attachEvent("onBeforeTaskDisplay", function (id, task) {
        if (task.crane >= craneStart && task.crane <= craneEnd) {
            return true
        }        
        return false;
    });
    gantt.init("ganttReport");
}

问题是,如果任何文本输入为空/null,则过滤器将失败并不返回任何内容。有没有一种方法可以通过不包括这些空值或动态指定要使用的过滤器来处理这些空值?

筛选器似乎只能返回truefalse,因此拥有多个if语句不起作用,因为它总是最后一个语句,它将在前面的迭代被覆盖的情况下提供结果。

代码语言:javascript
复制
if(condition1)
{
    return true
}
if(condition2)
{
    return true
}
return false

上面的代码不能工作,只有condition2会被使用,因为condition1会被覆盖。所以我不能用这种方式或使用if else来设置我的条件。

有没有人能提供一个解决方案,告诉我如何将所有这些条件传递给这一条语句,同时又能处理空值?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-20 22:54:07

这是一个有效的示例,您可以尝试只使用startDate/endDate或同时使用这两者:https://codesandbox.io/s/7qz1kw9vq

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55258386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档