【问题标题】: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】:
      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 表单 portlet 添加到页面

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

      7. 尝试发送创建的表单而不选择上一步中创建的复选框。

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

      【讨论】:

        【解决方案3】:

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

        return (currentFieldValue == 'true')
        

        【讨论】:

          猜你喜欢
          • 2016-03-04
          • 1970-01-01
          • 2021-07-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多