legacy-knowledge-base
公開されました Jul. 2, 2025

Webフォームポートレットでバリデーション機能を活用する

written-by

Brett Ripley

How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!

While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.

legacy-article

learn-legacy-article-disclaimer-text

この記事では、Webフォームポートレットでバリデーションを効果的に管理する方法について、簡単な例を紹介します。

解像度

なお、以下の再現手順(またはそれに類するもの)を踏むと、エラーが発生します:

  1. Web Formポートレットをページに配備する
  2. レンチをクリックし、「構成」を選択
  3. 新しいフィールドを作成する
  4. フィールドのタイトルを「Yes」または「No」にし、タイプをラジオボタンに変更します。
  5. オプション欄に「Yes」「No」を入力します。
  6. バリデーション」をクリックし、「バリデーションスクリプト」欄に「return false」と入力します;
  7. Validation Error Messageに「False」と入力します!
  8. 保存]をクリックします。
  9. フォームにデータを入力する
  10. 送信をクリック

上記のシナリオでは、エラーメッセージが表示されないままフォームが送信され、 "False!"

デフォルトでは、バリデーションはオフになっています。 バリデーションをオンにするには、Liferay Home ディレクトリにある portlet-ext.properties ファイルで validation.script.enabled=true を設定します。

この検証は、さまざまな形で活用することができます。 電話番号やメールアドレスの確認には、以下のスクリプトをご自由にお使いください。

テキストフィールドを追加し、検証フィールドの下に、9桁の数字を検証する次のスクリプトを入力します。

var regexObj = /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;

if (regexObj.test(currentFieldValue)) {

return true;

} else {

return false;

}

メールアドレスに@とピリオドがあるかどうかを確認するには、次のスクリプトを使用します:

var isEmail = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;

if(currentFieldValue.search (isEmail) == -1 && currentFieldValue != '') {

return false;

} else {

return true;

}

追加情報

なお、特定の環境に対応したWeb Formポートレットのコード変更は、開発者自身の判断で行うものであり、Liferayサブスクリプションサービスではサポートしません。

DXP 7.0でWebフォームポートレットにカスタムバリデーションスクリプトを作成する。

did-this-article-resolve-your-issue

legacy-knowledge-base