失敗したJFormRule検証にカスタムメッセージを提供するにはどうすればよいですか?


7

カスタムフィールドを検証し、テストが失敗すると、Joomlaは次のデフォルトのエラーメッセージを返します。

**Warning** Invalid field: My Field

返されるメッセージを指定して、無効である理由を説明するにはどうすればよいですか?

回答:


3

message属性を追加しますが、次のようにすることをお勧めします。

<field name="my_code" type="text" size="15" label="My Code"
  validate="myrule" message="Field may only contain A-z or 0-9" />

:)


うまくいきませんでした。カスタムメッセージで属性を配置しましたが、表示されるのは無効なフィールド:送信時のタイトルだけです。
RT

前のコメントに同意します。Joomla 3.6.5では動作しません。動作は使用するテンプレートに依存していますか?
coder.in.me 2017

1

異なるメッセージの場合は、次のmessageような属性を追加します。

public function test(SimpleXMLElement $element, $value, $group = null, JRegistry $input = null, JForm $form = null)
{
    if(!preg_match('/^[a-z0-9]+$/i', $value)) {
        $element->addAttribute('message', 'Field may only contain A-z or 0-9');
        return false;
    }elseif(!$somethingelse) {
        $element->addAttribute('message', 'Something else is wrong');
        return false;
    }

このコードを追加するファイルは?
RT

フォーム検証の詳細の一部については、この問題/解答を見てみましょう: joomla.stackexchange.com/questions/4037/...を
GDP

正規表現と同じように機能する軽量の条件は、見過ごされがちなctype_alnum()機能です。 if (!ctype_alnum($value)) { php.net/manual/en/function.ctype-alnum.php
mickmackusa
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.