gpt4 book ai didi

javascript - Cognos 文本框提示的多重检查

转载 作者:行者123 更新时间:2023-12-03 01:58:43 25 4
gpt4 key购买 nike

我有两个文本框提示,我需要验证它们是否只接受数字或空字段,如果您输入数字或空字段以外的任何内容,则应禁用运行按钮。

oCR = cognos.Report.getReport('_THIS_');
var prompts;
var f1 = oCR.prompt.getControlByName('Prompt1');
var f2 = oCR.prompt.getControlByName('Prompt2');
prompts = [f1,f2];

for (var i=0; i < prompts.length; i++) {
prompts[i].setValidator(validate);
}

function validate() {
var result = false;
for (var i=0; i < prompts.length; i++) {
var x = prompts[i].getValues();
if(x.length == 0) { result = true;}
if(x.length == 1 && x['use'] == " ") {result = true};
if(x.length > 0) {
var sValue = x['use'];
var codeFormat = new RegExp("^\\d+$")
if(codeFormat.test(sValue)) {
result=true;
}
}
}

if(result == true) {
getLink("Runreport").css("background-color", "#005FA5").css("border-color", "#005FA5").css("pointer-events","auto");
} else {
getLink("Runreport").css("background-color", "#dddddd").css("border-color", "#cccccc").css("pointer-events","none");
}
return result;
}

这并没有真正按照我想要的方式工作。因为现在它会检查两个提示是否都为 true。但如果一个提示为真而另一个提示为假,则它应该是假而不是真。有人知道如何解决这个问题吗?

最佳答案

这是您的验证函数,经过了一些简化和重组:

function validate(values) {
var result = true,currentresult = true,x;
if (values.length > 0) {
if (isNaN(values[0].use)) {
currentresult = false;
}
}
for (var i=0; i < prompts.length; i++) {
x = prompts[i].getValue();
if (x.length > 0) {
if (isNaN(x)) {
result = false;
break;
}
}
if (prompts[i] != this) {
prompts[i].checkData();
}
}
if (result) {
getLink("Runreport").css("background-color", "#005FA5").css("border-color", "#005FA5").css("pointer-events","auto");
} else {
getLink("Runreport").css("background-color", "#dddddd").css("border-color", "#cccccc").css("pointer-events","none");
}
return currentresult;
}

由于您希望两个提示中的任何一个失败都会导致无效,因此我们首先将结果设置为true。然后我们寻找提示无效的特殊情况。当提示的长度不为 0(外部 if)并且提示的内容不是数字(内部 if)时,就会出现这种特殊情况。我使用 isNaN() 函数,因为如果传入的值不是数字,它将返回 true;如果传入的值是数字,它将返回 false。如果 isNan() 返回 true,则我们将结果设置为 false 并跳出 for 循环。结果是,如果任何提示返回 false,则整个结果将为 false。

想要获得更多关于文本提示验证的乐趣,请查看我的高级技术 Cognos Prompt Numeric Range Validation它演示了进行多提示验证的一些其他方法和 Multi-prompt Validation它展示了如何将多个提示作为一个组进行验证。

关于javascript - Cognos 文本框提示的多重检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50135053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com