Làm cách nào tôi có thể cung cấp một thông báo tùy chỉnh để xác thực JFormRule không thành công?


7

Khi xác thực trường tùy chỉnh và kiểm tra thất bại, Joomla trả về thông báo lỗi mặc định sau:

**Warning** Invalid field: My Field

Làm thế nào tôi có thể chỉ định tin nhắn được trả lại để giải thích tại sao nó không hợp lệ?

Câu trả lời:


3

Thêm messagethuộc tính, nhưng tốt hơn như thế này:

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

:)


đã không làm việc. Tôi đã đặt thuộc tính với thông báo tùy chỉnh nhưng tất cả những gì tôi thấy là trường Không hợp lệ: Tiêu đề khi gửi.
RT

Đồng ý với nhận xét trước. Không hoạt động trên Joomla 3.6.5. Là hành vi phụ thuộc vào mẫu được sử dụng?
coder.in.me

1

Đối với một thông báo có thể thay đổi, hãy thêm messagethuộc tính như thế này:

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;
    }

Tập tin nào để thêm mã này?
RT

Hãy xem câu hỏi / câu trả lời này để biết một số chi tiết về xác thực mẫu: j Joomla.stackexchange.com/questions / 4037 / từ
GDP

Một điều kiện trọng lượng nhẹ hơn hoạt động giống như biểu thức thông thường của bạn là ctype_alnum()chức năng thường bị bỏ qua . if (!ctype_alnum($value)) { php.net/manual/en/function.ctype-alnum.php
mickmackusa
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.