gpt4 book ai didi

javascript - 如果日期为空,Xpages 如何检查 javascript?

转载 作者:行者123 更新时间:2023-11-30 17:29:04 26 4
gpt4 key购买 nike

这真的很奇怪。我正在 js 库中进行验证。我检查字段是否为空或空,如果是则抛出错误。

我有一个要检查的日期字段。如果我不输入默认值,代码就可以正常工作。它说日期是空白的,然后当我输入一个值时它让它通过。但是,如果我输入默认值 @Now 或 @Today,如果用户碰巧删除了日期,它就不会发现错误。我知道这不是真的有必要 - 我可以安装一个必需的验证器,但我无法解决这个问题让我发疯。

    //This SSJS script library consolidates all the validation in one place
//The postValidationError() function flags a control as invalid and provides an error message
//so that the XPages ErrorMessage control is used to display the error on the page.

var validateForm = function(){
var valid = true;
var control;
var val;


// *** REPEAT THE FOLLOWING BLOCK OF CODE FOR EACH CONTROL FOR BASIC "REQUIRED" VALIDATION

// For each field, change the Control Name in getComponent() and the error message text in postValidationError()
// Optionally, modify the IF conditions with more complex JavaScript for value ranges, regular expressions, data lookups, etc.


//Validate Location
control = getComponent("loc");
val = control.getValue();
if (isEmpty(val)) {
valid = false;
postValidationError(control,"Please enter a Loc");
}


//Validate Work Category
control = getComponent("workCategory");
val = control.getValue();
if (isEmpty(val)) {
valid = false;
postValidationError(control,"Please enter a Work Category");
}

//Validate Work Sub Category
control = getComponent("workSubCategory");
val = control.getValue();
if (isEmpty(val)) {
valid = false;
postValidationError(control,"Please enter a Sub Work Category");
}


//Validate Date


control = getComponent("date");
val = control.getValue();
if (isEmpty(val)) {
valid = false;
postValidationError(control,"Please enter a date");
}
//Validate Time Spent
control = getComponent("timeSpent");
val = control.getValue();
if (isEmpty(val)) {
valid = false;
postValidationError(control,"Please enter Time Spent");
}

// *** ---------------------------------------------------------------- ***

return valid;
}

function postValidationError(control, msg) {
if ((typeof msg) != "string")
return;
var msgObj = new javax.faces.application.FacesMessage(javax.faces.application.FacesMessage.SEVERITY_ERROR, msg, msg);
facesContext.addMessage(control.getClientId(facesContext), msgObj);
control.setValid(false);
}

function isEmpty(o){


return (o == null || o == "") ? true: false;

//return (o == null || @Trim($A(o)[0]) == "" ) ? true : false;
}

function $A( object ){
try {
if( typeof object === 'undefined' || object === null ){ return []; }
if( typeof object === 'string' ){ return [ object ]; }
if( typeof object.toArray !== 'undefined' ){return object.toArray();}
if( object.constructor === Array ){ return object; }
return [ object ];
} catch( e ) { }
}

最佳答案

Bryan,在 XPages 中推荐的验证方式是使用验证器,你写的代码少得多,你可以有选择地控制何时验证字段,你可以将不同的检查彼此分开。

查看我的 thoughts about validation .简而言之:

  • 代码验证(按钮、提交事件等)是完成验证的典型方式。流行的方式并不代表它就是正确的。您需要推出自己的通知机制(如更新标签)并倾向于将您的验证绑定(bind)到 UI 中。此外,当您删除字段时,验证例程可能会中断。最后一点:您很难记录验证的内容和原因。 (你知道我要去哪里了)
  • 验证器与字段一起定义并开启一系列可能性。 XPages offers 9 different validators .
  • 您可以编写 JavaScript、正则表达式、检查数据类型或自己动手。您可以在按钮/事件代码中执行的所有操作都可以在验证器中执行。由于验证器本身不与 UI 交互,因此设计人员可以决定如何在不更改验证代码的情况下显示消息。当您删除一个字段时,它的所有验证代码都会随之消失,因此维护变得更加容易。最后一点:您可以针对您的 XPage 源运行 XSLT 报告,并呈现一个报告,该报告显示一个包含所有已定义验证器的字段,这使得文档更容易。
  • 表单验证是在您的经典 Notes 表单中定义的@Formulas。它们仅在您将“运行表单验证”指定为“保存时”或“两者”时触发。通常,您会在升级现有应用程序时使用它们。

Extracted from another blog entry

关于javascript - 如果日期为空,Xpages 如何检查 javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23574533/

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