仅验证表单的某些部分

时间:2014-12-30 16:56:08

标签: forms validation xpages

我有一个相当大的形式,我用" Next"分成了各个部分。和"返回"用户导航每个步骤的按钮。

以下是我现在的设置:

  • 每个部分都在自己的xp:panel
  • 每个xp:面板都隐藏着" display:none"。当用户点击"下一步"或"返回"使用JQuery的淡入淡出动画

我要做的是,如果用户点击"下一步"我想只验证当前可见部分中的字段。如果验证失败,请不要转换到下一步。如果验证通过,请转换到下一步。

现在,当我点击"下一个"按钮,每个字段都在验证,转换不会发生。

有没有办法,我只能验证某个部分的字段,或者我必须使用Don Mottolo的代码片段:http://openntf.org/XSnippets.nsf/snippet.xsp?id=ssjs-form-validation-that-triggers-errormessage-controls

感谢您的帮助!

P.S。:我知道我可以使用按钮的onClick事件的CSJS部分来运行一些验证,但是我想使用"显示错误"控件。

2 个答案:

答案 0 :(得分:1)

您可以查看计算要验证的每个控件的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 );*/ }
}

链接:http://dontpanic82.blogspot.co.uk/2010/03/xpages-making-validation-behave.html

答案 1 :(得分:1)

您可以查看使用客户端表单验证框架,例如Parsley:http://parsleyjs.org

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