与其将代码添加到按钮中并为每个控件设置disableValidators,我建议采用相反的方法。对于每个控件,只有当用户按下“Add”按钮时,才设置required属性。
This blog post by Tommy Valand对此做了详细的描述。下面的函数允许您测试某个特定组件是否触发了更新。
代码语言:javascript复制// 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 );*/ }
}因此,如果您希望验证只在用户单击特定的“添加新”按钮时运行,那么将其写入所有所需的属性中:
代码语言:javascript复制return submittedBy('id-of-add-new-button')