Forms 仅验证表单的一部分

Forms 仅验证表单的一部分,forms,validation,xpages,Forms,Validation,Xpages,我有一个相当大的表单,我用“下一步”和“上一步”按钮将其分解为各个部分,供用户浏览每个步骤 以下是我如何将其设置为目前有效的: 每个部分都在自己的xp:panel中 每个xp:面板都隐藏有“显示:无”。当用户使用JQuery的淡入淡出动画单击“下一步”或“上一步”时,就会发生转换 我想做的是,如果用户单击“下一步”,我只想验证当前可见部分中的字段。如果验证失败,不要过渡到下一步。如果验证通过,则过渡到下一步 现在,当我点击“下一步”按钮时,每个字段都在验证中,转换没有发生 有没有一种方法,我

我有一个相当大的表单,我用“下一步”和“上一步”按钮将其分解为各个部分,供用户浏览每个步骤

以下是我如何将其设置为目前有效的:

  • 每个部分都在自己的xp:panel中
  • 每个xp:面板都隐藏有“显示:无”。当用户使用JQuery的淡入淡出动画单击“下一步”或“上一步”时,就会发生转换
我想做的是,如果用户单击“下一步”,我只想验证当前可见部分中的字段。如果验证失败,不要过渡到下一步。如果验证通过,则过渡到下一步

现在,当我点击“下一步”按钮时,每个字段都在验证中,转换没有发生

有没有一种方法,我只能验证某个部分中的字段,或者我必须使用Don Mottolo的代码片段:

谢谢你的帮助


注意:我知道我可以使用按钮onClick事件的CSJS部分来运行一些验证,但我想使用“Display Error”控件。

您可以查看要验证的每个控件的
required
属性,并检查哪个按钮正在提交表单。Tommy Vaaland有一个函数可以执行以下操作:

// Used to check which if a component triggered an update
function submittedBy( componentId ){
 try {
  var eventHandlerClientId = param.get( '$$xspsubmitid' );
  var eventHandlerId = @RightBack( eventHandlerClientId, ':' );
  var eventHandler = getComponent( eventHandlerId );  
  if( !eventHandler ){ return false; }

  var parentComponent = eventHandler.getParent();
  if( !parentComponent ){ return false; }

  return ( parentComponent.getId() === componentId );  
 } catch( e ){ /*Debug.logException( e );*/ }
}

链接:

您可以查看如何使用客户端表单验证框架,如Parsley:


这当然可以与服务器端验证相结合,至少在最终提交时是这样

哪种语言,c#,java?你好,皮尤斯,谢谢你的评论。这是XPages开发,我们主要使用JavaScriptHello Rob,感谢您的回复。这似乎是一条路要走。我会试试看,让大家都知道你好,罗布,这确实很有效。实际上,您可以对字段的属性“disableValidators”(可以在“数据”部分下的“所有属性”选项卡中找到)执行该检查。这样,如果您的字段有多个验证器和/或更复杂的验证器,您不必将其添加到每个验证器中。谢谢@Daniel F。正如我在这里回答问题时经常发现的那样,我通过我提供的每个答案了解更多关于技术的信息:-)这是真的。我只希望XPages的文档能够提供更多的信息和更全面的内容。当我查看各个控件的所有属性时,有时我会想,它们可以用于什么,以及如何帮助我改进使用我开发的应用程序的用户体验。您好,谢谢您的回复。你有将它与Bootstrap结合使用的经验吗?是的,我正在一个使用Bootstrap的项目中使用欧芹。