javascript - Xpages 设置值错误?

标签 javascript xpages xpages-ssjs

BUG

我的数据库允许匿名访问数据库并提交表单以进行处理 它有[Applicant]、[Admin]、[Reviewer] 3个 Angular 色

问题:

我需要通过组合 3 个不同的“邮件”字段来更新“电子邮件”字段。所以我使用添加元素,但它似乎保存了错误的数据,它给了一个额外的 [applicant]。附加图像将显示它的显示方式

var v;
//  Update mail 1 and mail 2 and mail3 into Email field!
if  
(
    (document1.getValue("Mail1")!=null && document1.getValue("Mail1")!="")&&
    (document1.getValue("Mail2")!=null && document1.getValue("Mail2")!="")&&
    (document1.getValue("Mail3")!=null && document1.getValue("Mail3")!="")
)   //all not empty
    {
        v.addElement(document1.getValue("Mail1")+"@brookedockyard.com.my"); 
        v.addElement(document1.getValue("Mail2")+"@brookedockyard.com.my");
        v.addElement(document1.getValue("Mail3")+"@brookedockyard.com.my"); 
        document1.replaceItemValue("Email",v)


else if
(
    (document1.getValue("Mail1")!=null && document1.getValue("Mail1")!="")&&
    (document1.getValue("Mail2")==null && document1.getValue("Mail2")=="")&&
    (document1.getValue("Mail3")===null && document1.getValue("Mail3")=="")
)   //  only have mail 1
    {
        document1.replaceItemValue("Email", document1.getValue("Mail1")+"@brookedockyard.com.my")
    }
else if
(
    (document1.getValue("Mail1")!=null && document1.getValue("Mail1")!="")&&
    (document1.getValue("Mail2")!=null && document1.getValue("Mail2")!="")&&
    (document1.getValue("Mail3")==null && document1.getValue("Mail3")=="")
)   //  only have mail 1 and mail 2
    {
        v.addElement(document1.getValue("Mail1")+"@brookedockyard.com.my"); 
        v.addElement(document1.getValue("Mail2")+"@brookedockyard.com.my"); 
        document1.replaceItemValue("Email",v)


else if
(   
    (document1.getValue("Mail1")!=null && document1.getValue("Mail1")!="")&&
    (document1.getValue("Mail2")==null && document1.getValue("Mail2")=="")&&
    (document1.getValue("Mail3")!=null && document1.getValue("Mail3")!="")
)       //  only have mail 1 and mail 3
    {
        v.addElement(document1.getValue("Mail1")+"@brookedockyard.com.my"); 
        v.addElement(document1.getValue("Mail3")+"@brookedockyard.com.my"); 
        document1.replaceItemValue("Email",v)

    }       

我正在使用服务器端 javascript 来保存文档。但是在保存期间它会在系统内部添加额外的信息。

最佳答案

我认为您的代码需要一些优化。此代码与您的相同:

var v = [];
["Mail1", "Mail2", "Mail3"].forEach(function(name) {
    if (document1.getValue(name)) {
        v.push(document1.getValue(name)+"@brookedockyard.com.my"); 
    }
});
document1.replaceItemValue("Email",v);

此外,它将变量 v 初始化为一个空数组。尽可能使用数组而不是向量。它更像 JavaScript 原生。

关于javascript - Xpages 设置值错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44430259/

相关文章:

javascript - 输入框在 Enter 时重置页面而不是运行函数

java - 如何在 XPages 中控制绑定(bind)到作用域变量的数值类型

java - XPages - 更新 Java 类设计元素

javascript - 如何为 Sequelize 更新添加日志记录

javascript - 限制用户访问其他用户配置文件

javascript - xpages 将多值字段更新为邮件发件人,无法发送给多个用户

java - 无法访问 Lotus Notes Java 代理中的资源文件

XPage:保存时富文本字段的摘要为 true。为什么以及如何将标志设置为 false?

javascript - XPages:使用 xpages 链接的 “onclick ” 事件打开下拉菜单

javascript - 根据属性删除 JSON 对象