如何从按钮禁用特定字段的验证器

时间:2013-12-02 22:31:57

标签: xpages

我有一个加载Bootstrap模态窗口的xpage(见图片)。我需要验证数据 ,用户按下“添加新”按钮。当<按>保存并继续'或'上一步'按钮被按下时,我希望验证器运行。

模态对话框是一个在整个应用程序中多次使用的自定义控件。我无法更改按钮以禁用验证器,因为大多数时候我想验证。中心内容存储在自己的自定义控件中。

我的问题是我可以在按钮中添加代码以获取每个控件的句柄,并将disableValidators设置为true。我无法弄清楚如何执行此操作。我已经尝试过计算disableValidators,但完全不成功。这些字段都绑定到范围变量。

我知道我可以在这里使用客户端验证,但是应用程序的其余部分使用服务器端并且我希望保持一致+这是一个响应式应用程序,并且移动设备上的客户端很烦人。

enter image description here

1 个答案:

答案 0 :(得分:3)

我建议反之亦然,而不是为按钮添加代码并为每个控件设置disableValidators。仅对于每个控件设置required属性,仅当用户按下“添加新内容”时才会设置// 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 );*/ } } 属性。按钮。

This blog post by Tommy Valand详细描述了它。以下函数可让您测试特定组件是否触发更新。

return submittedBy('id-of-add-new-button')

因此,如果您希望验证仅在用户点击特定的“添加新内容”时运行。按钮然后在所有必需属性中写入:

{{1}}