【问题标题】:Liferay webform portlet field validationLiferay webform portlet 字段验证
【发布时间】:2012-08-04 08:45:35
【问题描述】:
Portlet 描述了它应该如何工作:
输入返回 true 或 false 的 JavaScript 代码以验证
场地。以下隐式变量可用。
currentFieldValue:被验证的值 fieldsMap:数组
所有按名称索引的表单值
我还没有找到任何关于此的文档。
无论如何,我有网络表单,可以将表单输入发送到我的电子邮件,但如果最后一个复选框没有被选中,那么它应该会出错。
所以我想出了这段代码,但它不起作用:
if(currentFieldValue == false){return false;}
有人知道这个 liferay webform portlet 验证是如何工作的吗?
【问题讨论】:
标签:
javascript
webforms
validation
liferay
【解决方案1】:
我尝试过这样,但我总是得到错误You have entered invalid data. Please try again.。
于是我开始改变
if(currentFieldValue == false){return false;}
进入
if(currentFieldValue != ""){return true;}
看来提交需要true 可能会自动设置为false。
这适用于所有类型的字段。
【解决方案2】:
停止 Tomcat
转到 APPLICATION_SERVER_ROOT_DIRECTORY/webapps/web-form-portlet/WEB-INF/classes 目录
打开 portlet.properties 并将“validation.script.enabled”属性从“false”更改为“true”
启动 Tomcat
将 Web 表单 portlet 添加到页面
在 Web 表单 portlet 的配置弹出窗口中,我们添加了一个复选框类型字段,其中包含您在描述中编写的验证脚本:“if(currentFieldValue == false){return false;}”和验证错误消息:“勾选复选框!”
尝试发送创建的表单而不选择上一步中创建的复选框。
结果:“勾选复选框!”屏幕上出现消息。
【解决方案3】:
currentFieldValue 始终是一个字符串,因此对我来说正确的解决方案是将验证脚本设置如下:
return (currentFieldValue == 'true')