Liferay Webform Portlet字段验证

问题描述 投票:0回答:4

Portlet描述了它应该如何工作:

输入返回true或false的JavaScript代码以验证领域。以下隐式变量可用。

currentFieldValue:正在验证的值fieldsMap:的数组所有按名称索引的表单值

我还没有找到任何与此相关的文档。

无论如何,我有Web表单将表单输入发送到我的电子邮件中,但是如果未选中最后一个复选框,则应该给出错误。

所以我想出了这段代码,但是它不起作用:

if(currentFieldValue == false){return false;}

任何人都知道liferay Webform Portlet验证的工作原理吗?

javascript webforms validation liferay
4个回答
0
投票

我以这种方式尝试过,但总是收到错误You have entered invalid data. Please try again.

所以我开始改变

if(currentFieldValue == false){return false;}

进入

if(currentFieldValue != ""){return true;}

[似乎提交人需要true,但它会自动设置为false

这适用于所有领域。


0
投票
  1. 停止Tomcat

  2. 转到APPLICATION_SERVER_ROOT_DIRECTORY / webapps / web-form-portlet / WEB-INF / classes目录

  3. 打开portlet.properties,并将“ validation.script.enabled”属性从“ false”更改为“ true”

  4. 启动Tomcat

  5. Web Form portlet添加到页面中

  6. 在Web窗体portlet的配置弹出窗口中,我们添加了一个复选框类型字段,其中包含您在描述中编写的验证脚本:“ if(currentFieldValue == false){return false;}”和验证错误消息:“勾选复选框!”

  7. 试图发送创建的表单,但未选择在上一步中创建的复选框。

结果:“勾选复选框!”消息出现在屏幕上。


0
投票

currentFieldValue始终是一个字符串,因此对我来说,正确的解决方案是按如下所示设置验证脚本:

return (currentFieldValue == 'true')

0
投票

我遵循了Algeron帖子中提到的步骤。我在复选框字段中添加了自定义验证,当我填写表单并单击“保存”按钮时,无法处理该表单。在tomcat标准输出日志中,我发现了下一个错误:

12:45:27,628 ERROR [http-bio-8080-exec-2][WebFormUtil:257] The following script has execution errors:
return (currentFieldValue == 'true');
missing ] in index expression (Validation Script#8)

任何人都知道我该如何解决?预先感谢。

© www.soinside.com 2019 - 2024. All rights reserved.