我们目前正在使用Quickbase中的甘特图表功能来突出当前开发人员的工作负载。我们正在创建有假期的任务,以便将假期放在相同的任务级别上。有一个悬而未决的要求,使蓝色条形紫色,这样你就可以区分两者。目前,我们已经创建了一个计算字段,添加了HTML,但是jquery无法正常工作。这就是我们目前的情况。
If([Task Name]="Vacation","<script type=\"text/javascript\">$(document).ready(function() { $('#timeline img').attr('src',('https://images.quickbase.com/si/16/821-check_purple.png')); });</script>","")这应该将当前行div中的图像替换为脚本中的图像。任何帮助都是很棒的
谢谢
发布于 2016-07-14 17:23:27
看起来有几个问题导致您的代码无法工作。首先,让我区分Quickbase中的“计算字段”和“公式字段”。计算字段在报表视图中定义(意味着它们只能在该报表中查看,而不允许使用HTML )。另一方面,公式字段是像传统字段一样创建的,允许您选择允许某些HTML的复选框。您需要使用公式字段来获得在表单或报表中运行的代码。您还需要确保该字段在报告中可见,否则代码将不会被执行。
一旦解决了这个问题,您的脚本可能无法运行,因为Quickbase限制了允许的HTML标记。而不是改变图像,您将看到您的脚本文本显示在字段中。您可以通过在onload元素的IMG标记中放置脚本来解决这个问题。这将具有不再需要document.ready(function(){});正确执行的附加效果。
最后,最后一个问题是选择器。即使您使用的是附加到特定记录的公式字段,脚本本身也会对整个页面执行。为了只为任务名为"Vacation“的记录选择img元素,您需要一种区分行的方法。幸运的是,时间线报告将每一行封装在一个div中,给它一个id "rid“+记录ID。
因此,如果将所有这些放在一起,您将得到一个公式文本字段,其中包含“允许在字段中插入一些HTML标记”,并将其作为公式:
If([Task Name]="Vacation", "<img qbu=\"module\" src=\"/i/clear2x2.gif\" onload=\"javascript:$('#rid" & [Record ID#] & " > td:has(div.timeline) > div.timeline > img').attr('src',('https://images.quickbase.com/si/16/821-check_purple.png'));\">", "")我在我自己的时间表报告中测试了上面的公式,它像预期的那样工作。
编辑:
若要排除Quickbase在编辑源时自动放置的空白2x2.gif图像,请执行以下操作:
If([Task Name]="Vacation", "<img qbu=\"module\" src=\"/i/clear2x2.gif\" onload=\"javascript:$('#rid" & [Record ID#] & " > td:has(div.timeline) > div.timeline > img:not([src^="/i/clear2x2.gif"])').attr('src',('https://images.quickbase.com/si/16/821-check_purple.png'));\">", "")https://stackoverflow.com/questions/38376454
复制相似问题