nepada/birth-number-input

Czech出生号码表单输入,适用于Nette表单。

v1.3.0 2023-09-28 19:55 UTC

This package is auto-updated.

Last update: 2024-09-01 05:58:07 UTC


README

Build Status Coverage Status Downloads this Month Latest stable

安装

通过Composer

$ composer require nepada/birth-number-input

选项A:通过DI扩展安装表单容器扩展方法

extensions:
    - Nepada\Bridges\BirthNumberInputDI\BirthNumberInputExtension

它将注册扩展方法 addBirthNumber($name, $label = null): BirthNumberInputNette\Forms\Container

选项B:在您的基表单/容器类中使用特性

您也可以在您的基表单/容器类中使用 BirthNumberInputMixin 特性来添加方法 addBirthNumber($name, $label = null): BirthNumberInput

示例

trait FormControls
{

    use Nepada\Bridges\BirthNumberInputForms\BirthNumberInputMixin;

    public function addContainer($name)
    {
        $control = new Container;
        $control->setCurrentGroup($this->getCurrentGroup());
        if ($this->currentGroup !== null) {
            $this->currentGroup->add($control);
        }
        return $this[$name] = $control;
    }

}

class Container extends Nette\Forms\Container
{

    use FormControls;

}

class Form extends Nette\Forms\Form
{

    use FormControls;

}

用法

BirthNumberInput 是一个表单控件,它使用出生号码值对象来表示其值(有关详细信息,请参阅 nepada/birth-number)。它自动验证用户输入,并且 getValue() 方法始终返回 BirthNumber 实例,或者 null 如果输入未填写。

$birthNumberInput = $form->addBirthNumber('birthNumber');
$birthNumberInput->setValue('invalid'); // \InvalidArgumentException is thrown
$birthNumberInput->setValue('000101 / 0009'); // the value is internally converted to BirthNumber value object
$birthNumberInput->getValue(); // BirthNumber instance for 000101/0009

客户端验证

使用预编译包

使用预编译包是快速实现客户端验证的简单方法。

<script src="https://unpkg.com/nette-forms@%5E3.0/src/assets/netteForms.min.js"></script>
<script src="https://unpkg.com/@nepada/birth-number-input@%5E1.0/dist/birth-number-input.min.js"></script>

构建自己的包

强烈建议通过nmp安装客户端包并编译自己的包。

以下是一个用于初始化出生号码输入和Nette表单的示例脚本。

import Nette from 'nette-forms';
import initializeBirthNumberInput from '@nepada/birth-number-input';

initializeBirthNumberInput(Nette);
Nette.initOnLoad();