我有一个表单,它有一个javascript验证功能,它是从以前运行的网站(即旧的多米诺骨牌表单)构建的。我正在将该网站转换为xpages。是否可以将该功能作为CSJS绑定到保存和关闭按钮,就像过去的应用程序一样?
我只是问,因为有很多条件验证要求都需要重新创建,这些要求都存在于此函数中。 。此外,表单还有选项卡面板和部分刷新条件,我必须编写代码以避免刷新调用验证等。
我有一种感觉,我会遇到一些问题,例如:
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 :(得分: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
于2014年1月16日0:17回答 蒂姆Tripcony 7,73611532
答案 1 :(得分:0)
您想看一些活动部件......
如果要执行整个客户端验证,请不要将其绑定到按钮,而是使用表单事件onSubmit="validate(this)"
。这将使用表单作为参数调用您的函数,如果您使用了正确的表单,则无需担心。您可以在字段上使用类参数来指定通用验证要求,例如class="mandatory max_50"
等。
但请注意:客户端验证仅为了用户的舒适度,因为它可以轻松绕过。除非您的连接速度很慢,否则您可能希望利用XPage服务器端验证器和错误控制。
更新:使用XSP对象添加活动:https://www.notessensei.com/blog/2010/07/meet-the-xsp-object.html