Class yii\widgets\MaskedInput

继承yii\widgets\MaskedInput » yii\widgets\InputWidget » yii\base\Widget » yii\base\Component » yii\base\BaseObject
实现yii\base\Configurable, yii\base\ViewContextInterface
可用自版本2.0
源代码 https://github.com/yiisoft/yii2/blob/master/framework/widgets/MaskedInput.php

MaskedInput 生成一个掩码文本输入.

MaskedInput 与 yii\helpers\Html::textInput() 类似, 不同之处在于, 输入掩码将用于强制用户输入格式正确的数据, 例如电话号码, 社会安全号码.

要使用 MaskedInput, 你必须设置 $mask 属性. 以下示例显示如何使用 MaskedInput 收集电话号码:

echo MaskedInput::widget([
    'name' => 'phone',
    'mask' => '999-999-9999',
]);

你还可以使用 widget() 方法在 yii\widgets\ActiveForm 中使用此小部件, 例如:

<?= $form->field($model, 'from_date')->widget(\yii\widgets\MaskedInput::className(), [
    'mask' => '999-999-9999',
]) ?>

掩码文本字段是基于 jQuery 输入掩码插件 实现的.

公共属性

隐藏继承的属性

属性类型描述定义在
$aliases array 要使用的自定义别名. yii\widgets\MaskedInput
$attribute string 与此小部件关联的模型属性. yii\widgets\InputWidget
$autoIdPrefix string 自动生成的小部件 ID 的前缀. yii\base\Widget
$behaviors yii\base\Behavior[] 附加到此组件的行为列表. 该属性是只读的. yii\base\Component
$clientOptions array 输入掩码插件的 JQuery 插件选项. yii\widgets\MaskedInput
$counter integer 用于为小部件生成 $id 的计数器. yii\base\Widget
$definitions array 要使用的自定义掩码定义. yii\widgets\MaskedInput
$field yii\widgets\ActiveField 活动的输入字段, 它会触发该小部件的渲染. yii\widgets\InputWidget
$id string|null 小部件的 ID. Note: 此属性的类型在 getter 和 setter 中不同. 有关详细信息, 请参阅 getId()setId(). yii\base\Widget
$mask string|array|yii\web\JsExpression 输入掩码(eg. yii\widgets\MaskedInput
$model yii\base\Model 与此小部件关联的数据模型. yii\widgets\InputWidget
$name string 输入域名称(input标签的name值). yii\widgets\InputWidget
$options array 输入标签的 HTML 属性. yii\widgets\MaskedInput
$stack yii\base\Widget[] 当前正在渲染的小部件(未结束). yii\base\Widget
$type string 输入标签的类型, 目前只支持texttel. yii\widgets\MaskedInput
$value string 输入值(input标签的value值). yii\widgets\InputWidget
$view yii\web\View 可用于渲染视图或视图文件的视图对象. Note: 此属性的类型在 getter 和 setter 中不同. 有关详细信息, 请参阅 getView()setView(). yii\base\Widget
$viewPath string 包含此小部件的视图文件的目录. 该属性是只读的. yii\base\Widget

受保护的属性

隐藏继承的属性

属性类型描述定义在
$_hashVar string 用来存储 pluginOptions 的哈希变量. yii\widgets\MaskedInput

公共方法

隐藏继承的方法

方法描述定义在
__call() 调用不是类方法的指定的方法. yii\base\Component
__clone() 在通过克隆现有对象创建对象之后调用此方法. yii\base\Component
__construct() 构造函数. yii\base\BaseObject
__get() 返回组件属性的值. yii\base\Component
__isset() 检查属性是否已设置, 即已定义且不为null. yii\base\Component
__set() 设置组件属性的值. yii\base\Component
__unset() 将组件属性设置为null. yii\base\Component
afterRun() 在执行小部件后立即调用该方法. yii\base\Widget
attachBehavior() 将行为附加到此组件. yii\base\Component
attachBehaviors() 将行为列表附加到组件. yii\base\Component
beforeRun() 在执行小部件之前立即调用该方法. yii\base\Widget
begin() 开始一个小部件. yii\base\Widget
behaviors() 返回此组件应该具有的行为列表. yii\base\Component
canGetProperty() 返回一个值, 指示属性是否可读取. yii\base\Component
canSetProperty() 返回一个值, 指示属性是否可设置. yii\base\Component
className() 返回此类的完全限定名称. yii\base\BaseObject
detachBehavior() 从组件中分离一个行为. yii\base\Component
detachBehaviors() 分离组件中的所有行为. yii\base\Component
end() 结束小部件. yii\base\Widget
ensureBehaviors() 确保在 behaviors() 中声明的行为已附加到此组件. yii\base\Component
getBehavior() 返回指定的行为对象. yii\base\Component
getBehaviors() 返回附加到此组件的所有行为. yii\base\Component
getId() 返回小部件的 ID. yii\base\Widget
getView() 返回可用于渲染视图或视图文件的视图对象. yii\base\Widget
getViewPath() 返回包含此小部件的视图文件的目录. yii\base\Widget
hasEventHandlers() 返回一个值, 指示是否有任何处理程序附加到指定的事件. yii\base\Component
hasMethod() 返回一个值, 指示方法是否已定义. yii\base\Component
hasProperty() 返回一个值, 指示属性是否已定义. yii\base\Component
init() 初始化小部件. yii\widgets\MaskedInput
off() 从该组件分离现有的事件处理程序. yii\base\Component
on() 将事件处理程序附加到事件. yii\base\Component
registerClientScript() 注册所需的客户端脚本和选项. yii\widgets\MaskedInput
render() 渲染视图. yii\base\Widget
renderFile() 渲染视图文件. yii\base\Widget
run() 执行小部件. yii\widgets\MaskedInput
setId() 设置小部件的 ID. yii\base\Widget
setView() 设置此小部件要使用的视图对象. yii\base\Widget
trigger() 触发事件. yii\base\Component
widget() 创建一个小部件实例并运行它. yii\base\Widget

受保护的方法

隐藏继承的方法

方法描述定义在
hasModel() yii\widgets\InputWidget
hashPluginOptions() 生成一个哈希变量来存储插件的clientOptions. yii\widgets\MaskedInput
initClientOptions() 初始化客户端选项. yii\widgets\MaskedInput
renderInputHtml() 渲染 HTML 输入标签(input). yii\widgets\InputWidget

事件

隐藏继承的事件

事件类型描述定义在
EVENT_AFTER_RUN yii\base\WidgetEvent 在执行小部件之后立即触发的事件. (available since version 2.0.11) yii\base\Widget
EVENT_BEFORE_RUN yii\base\WidgetEvent 在执行小部件之前触发的事件. (available since version 2.0.11) yii\base\Widget
EVENT_INIT yii\base\Event 当通过 init() 初始化小部件时触发的事件. (available since version 2.0.11) yii\base\Widget

常量

隐藏继承的常量

常量描述定义在
PLUGIN_NAME 'inputmask' 用于此小部件的 jQuery 插件的名称. . yii\widgets\MaskedInput

属性详情

$_hashVar protected 属性

用来存储 pluginOptions 的哈希变量.

protected string $_hashVar null
$aliases public 属性

要使用的自定义别名.

应该配置为maskAlias => settings, 其中:

  • maskAlias是一个字符串, 包含用于标识你的掩码别名定义的文本(eg. phone);
  • settings是一个包含掩码符号设置的数组, 与 $clientOptions 中传递的参数完全相似.
public array $aliases null
$clientOptions public 属性

输入掩码插件的 JQuery 插件选项.

参见 https://github.com/RobinHerbots/Inputmask.

public array $clientOptions = []
$definitions public 属性

要使用的自定义掩码定义. 应该配置为maskSymbol => settings, 其中:

  • maskSymbol 是一个字符串, 包含一个字符来标识你的掩码定义;
  • settings 是一个数组, 由以下选项组成:
    • validator: string, JS 正则表达式或 JS 函数;
    • cardinality: int, 指定为定义表示和验证了多少个字符;
    • prevalidator: array, 在达到定义基数(cardinality)之前验证字符;
    • definitionSymbol: string, 使用这个definitionSymbol允许从其它定义中转移值.
public array $definitions null
$mask public 属性

输入掩码(eg. 日期输入'99/99/9999'). 以下字符可以在掩码中使用并且是预定义的:

  • a: 代表一个字母字符(A-Z, a-z)
  • 9: 代表一个数字字符(0-9)
  • *: 代表一个字母数字字符(A-Z, a-z, 0-9)
  • [ and ]: 在方括号之间输入的任何东西都被认为是可选的用户输入. 这基于 $clientOptions 中的optionalmarker设置.

可以通过 $definitions 属性设置其他定义.

$options public 属性

输入标签的 HTML 属性.

参见 yii\helpers\Html::renderTagAttributes() 有关如何渲染属性的详细信息.

public array $options = ['class' => 'form-control']
$type public 属性 (可用自版本: 2.0.6)

输入标签的类型, 目前只支持texttel.

参见 https://github.com/RobinHerbots/Inputmask.

public string $type 'text'

方法详情

hashPluginOptions() protected 方法

生成一个哈希变量来存储插件的clientOptions.

有助于在同一页面上重复使用为其它小部件传递的类似选项的变量. 以下特殊数据属性也将被添加到输入字段中, 以允许通过 javascript 访问客户端选项:

  • data-plugin-inputmask: 将存储插件选项的哈希变量.
protected void hashPluginOptions ( $view )
$view yii\web\View

视图实例.

init() public 方法

初始化小部件.

public void init ( )
throws yii\base\InvalidConfigException

如果掩码(mask)属性未设置.

initClientOptions() protected 方法

初始化客户端选项.

protected void initClientOptions ( )
registerClientScript() public 方法

注册所需的客户端脚本和选项.

public void registerClientScript ( )
run() public 方法

执行小部件.

public string run ( )
return string

输出小部件执行的结果.