2017-04-12 55 views
0

我有一个窗体,具有从其以前的运作的网站(即旧的多米诺骨牌形式)构建的JavaScript验证功能。我正在将该网站转换为xpages。是否有可能将该函数作为CSJS与保存和关闭按钮(如过去的应用程序中)相关联?XPages验证与CSJS函数调用提交按钮

我只问,因为有很多条件验证要求,都需要重新创建这个函数。 。此外形式有标签pannels和局部刷新的条件,我将不得不四处代码以避免刷新调用验证等

我有一种感觉,我都会有问题与一些呼叫,例如:

document=document1; 
form1 = document.forms[0] ; 
val_AlphaSuffix = form1.Suffix.value ; 
var msg=""; 
form = document.forms[0] ; 
val_Eff_Date = form.Eff_Date.value ; 
if (val_Eff_Date== "") { 
    msg=msg+"Effective Date is missing.\n"; 
} 

回答

0

如果任何人有传递文件,而不是每个项目的一个更好的方法,我很愿意看到,但如果没有,我认为这个答案由Tim T.可能是最好的答案,我可以看到:

表达语言(例如#{id:Hours20})只能在组件属性的上下文中解释,例如字段的onChange事件代码。将代码移动到单独的库中后,代码不再是组件的属性,它是可以在组件属性中引用的代码。

与其他任何良好功能一样,设计所有客户端JavaScript函数来接受任何可能作为参数的上下文敏感的东西。例如:

function updateHours(inputId, outputId) { 
    var hours20 = XSP.getElementById(inputId).value; 
    XSP.getElementById(outputId).value = hours20; 
} 

然后你onChange事件可以参考此功能,但只传递上下文相关的信息:

updateHours("#{id:Hours20}", "#{id:Hours10}"); 

这样你保持在脚本库,可重用的业务逻辑,其总是一件好事,但这些库中没有任何内容假定页面结构或服务器端变量。 shareeditflag

回答1月16日在'14 0:17 添Tripcony 7,73611532

0

有你想看看一个运动部件少...

如果要执行整个客户端验证,不要绑定到一个按钮,但使用表单事件onSubmit="validate(this)"。这将调用你的函数作为参数的形式,你不必担心,如果你有正确的形式。您可以在您的字段上使用类参数来指定通用验证要求,例如class="mandatory max_50"

但请注意:客户端验证只是为了用户的舒适,因为它可以轻松绕过。除非连接速度很慢,否则您可能想要利用XPage服务器端验证程序和错误控制。

更新:使用XSP对象添加事件:https://www.notessensei.com/blog/2010/07/meet-the-xsp-object.html

+0

形式事件的onsubmit XPages中?困惑如何看待xpages? –

+0

XSP.addPresubmitListener – stwissel