[英]Liferay webform portlet field validation
Portlet 描述了它應該如何工作:
輸入返回 true 或 false 的 JavaScript 代碼以驗證該字段。 以下隱式變量可用。
currentFieldValue:正在驗證的值 fieldsMap:按名稱索引的所有表單值的數組
我還沒有找到任何關於此的文檔。
無論如何,我有將表單輸入發送到我的電子郵件的網絡表單,但是如果未選中最后一個復選框,則它應該會出現錯誤。
所以我想出了這個代碼,但它不起作用:
if(currentFieldValue == false){return false;}
有人知道這個liferay webform portlet 驗證是如何工作的嗎?
停止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;}”和驗證錯誤消息:“勾選復選框!”
嘗試發送創建的表單而不選擇在上一步中創建的復選框。
結果:“勾選復選框!” 消息出現在屏幕上。
我像這樣嘗試過,但我總是得到 rrror You have entered invalid data. Please try again.
You have entered invalid data. Please try again.
.
於是我開始改變
if(currentFieldValue == false){return false;}
進入
if(currentFieldValue != ""){return true;}
似乎提交需要一個true
可能它會自動設置為false
。
這適用於所有類型的領域。
currentFieldValue
始終是一個字符串,因此對我來說正確的解決方案是將驗證腳本設置如下:
return (currentFieldValue == 'true')
我遵循了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)
任何人有任何想法我該如何解決? 提前致謝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.