Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Acrobat中基于表单字段值的动态字体颜色分配_Javascript_Acrobat - Fatal编程技术网

Javascript Acrobat中基于表单字段值的动态字体颜色分配

Javascript Acrobat中基于表单字段值的动态字体颜色分配,javascript,acrobat,Javascript,Acrobat,我有一张贷款表,可以计算债务与收入的比率。我希望定额所在的字段(计算字段,不允许用户输入)根据定额更改字体颜色 如果比率高于60%,则我希望字体颜色为淡红色(请参阅下面的颜色值),如果>=35%,则为另一种颜色,如果低于35%,则为正常颜色 这是我想出的代码 if (event.value >= .6) { this.textColor = (255, 153, 0); } else if (event.value >= .35) { this.textColor =

我有一张贷款表,可以计算债务与收入的比率。我希望定额所在的字段(计算字段,不允许用户输入)根据定额更改字体颜色

如果比率高于60%,则我希望字体颜色为淡红色(请参阅下面的颜色值),如果>=35%,则为另一种颜色,如果低于35%,则为正常颜色

这是我想出的代码

if (event.value >= .6) {
    this.textColor = (255, 153, 0);
}
else if (event.value >= .35) {
    this.textColor = (204, 51, 0);
}
else {
    this.textColor = (0, 102, 153);
}
代码处于自定义验证中


这不管用。我做错了什么?

您的代码出现了几个问题,但您在错误的事件中运行了它。在验证事件期间,该值尚未实际提交。提交值后,使用自定义格式脚本更改字段的外观。参见图。

然后在代码中,需要获取触发脚本的字段的值(event.target),然后需要设置它的颜色属性(event.target.textColor)。此外,PDF中的颜色是通过使用数组定义的,其中第一个元素是颜色空间,然后是范围从0到1的值。见下面修订的代码

if (event.target.value >= .6) {
    event.target.textColor = ["RGB", 255/255, 153/255, 0];
}
else if (event.target.value >= .35) {
    event.target.textColor = ["RGB", 204/255, 51/255, 0];
}
else {
    event.target.textColor = ["RGB", 0, 102/255, 153/255];
}

您的代码有几个问题,但是您在错误的事件中运行它。在验证事件期间,该值尚未实际提交。提交值后,使用自定义格式脚本更改字段的外观。参见图。

然后在代码中,需要获取触发脚本的字段的值(event.target),然后需要设置它的颜色属性(event.target.textColor)。此外,PDF中的颜色是通过使用数组定义的,其中第一个元素是颜色空间,然后是范围从0到1的值。见下面修订的代码

if (event.target.value >= .6) {
    event.target.textColor = ["RGB", 255/255, 153/255, 0];
}
else if (event.target.value >= .35) {
    event.target.textColor = ["RGB", 204/255, 51/255, 0];
}
else {
    event.target.textColor = ["RGB", 0, 102/255, 153/255];
}

vResult
实际上是一个
number
,而不是一个
string
的表示吗?我将代码改为使用event.value。我的问题仍然适用,不管它是否真的是一个数字,好像它不起作用一样。是的,event.value计算为一个数字,格式为表单中的百分比。我需要能够根据其值更改字体颜色。
vResult
是否实际上是一个
数字
,而不是一个
字符串
表示形式?我更改了代码,改为使用event.value。我的问题仍然适用,不管它是否真的是一个数字,好像它不起作用一样。是的,event.value计算为一个数字,格式为表单中的百分比。我需要能够根据它的值来改变字体颜色。这似乎是合理的,但是,似乎这个答案只适用于AcROAT席。我使用的是XPro,它没有创建自定义格式脚本的选项。附近有工作吗?答:我把所有东西都放在自定义计算脚本中,它就像一个符咒。非常感谢。标记为已接受。自定义格式脚本从3.5版开始出现,用户界面从此保持不变。如果已将格式设置为数字,则无法进行设置。您需要将格式类别设置为“自定义”。。。就像我发布的屏幕截图一样,除了@joelgeraci的注释外,这段代码也可以在Validate事件中使用,或者您可以将其包含在计算中。如果两者都不可接受,那么你将使用UTI.Primff()来格式化字段的值。这似乎是合理的,但是,似乎这个答案只适用于AcROAT席XI。我使用的是XPro,它没有创建自定义格式脚本的选项。附近有工作吗?答:我把所有东西都放在自定义计算脚本中,它就像一个符咒。非常感谢。标记为已接受。自定义格式脚本从3.5版开始出现,用户界面从此保持不变。如果已将格式设置为数字,则无法进行设置。您需要将格式类别设置为“自定义”。。。就像我发布的屏幕截图一样,除了@joelgeraci的注释外,这段代码也可以在Validate事件中使用,或者您可以将其包含在计算中。如果两者都不可接受,则使用util.printf()格式化字段的值。