flsouto/

httextin

该软件包最新版本(1.0.0)没有可用的许可证信息。

创建简单的文本输入字段

1.0.0 2017-02-11 20:35 UTC

This package is not auto-updated.

Last update: 2024-09-23 14:28:47 UTC


README

这代表 HTML 文本输入。这是一个库,通过标准的API生成“单行”文本字段,该API提供了数据格式化、处理等多种实用功能。

这是 HtWidget 类的第一个具体实现。您可以 点击此处 了解更多,以更好地理解整个理念。

安装

运行 composer

composer require flsouto/httextin

用法

默认情况下,文本输入小部件以可写模式渲染,将期望从用户处接收输入。

<?php
use FlSouto\HtTextin;
require_once('vendor/autoload.php');

$field = new HtTextin('email');
$field->context(['email'=>'user@domain.com']);

echo $field;

输出

<div class="widget 589f856da986a" style="display:block">
 <input name="email" value="user@domain.com" />
 <div style="color:yellow;background:red" class="error">
 </div>
</div>

切换到只读模式

use FlSouto\HtTextin;
require_once('vendor/autoload.php');

$field = new HtTextin('email');
$field->readonly(true);

echo $field;

输出

<div class="widget 589f856dad400" style="display:block">
 <input name="email" value="" readonly="readonly" />
 <div style="color:yellow;background:red" class="error">
 </div>
</div>

关闭只读并返回可写模式

use FlSouto\HtTextin;

$field = new HtTextin('email');
$field->readonly(true);
$field->readonly(false);

echo $field;

输出

<div class="widget 589f856dad92c" style="display:block">
 <input name="email" value="" />
 <div style="color:yellow;background:red" class="error">
 </div>
</div>

设置大小属性

$field = new HtTextin('email');
$field->size(40);

echo $field;

输出

<div class="widget 589f856dade03" style="display:block">
 <input name="email" size="40" value="" />
 <div style="color:yellow;background:red" class="error">
 </div>
</div>

设置占位符属性

$field = new HtTextin('email');
$field->size(40)->placeholder("eg: user@domain.com");

echo $field;

输出

<div class="widget 589f856dae2b0" style="display:block">
 <input name="email" size="40" value="" />
 <div style="color:yellow;background:red" class="error">
 </div>
</div>

使用格式化器

formatter 方法允许您格式化从上下文中拉取的值,以便在输入字段上显示。

$field = new HtTextin('price');
$field->formatter(function($value){
	return '$'.number_format((float)$value, 2, '.',',');
});

$field->context(['price'=>30.9]);

echo $field;

输出

<div class="widget 589f856dae783" style="display:block">
 <input name="price" value="$30.90" />
 <div style="color:yellow;background:red" class="error">
 </div>
</div>

使用过滤器

filters 方法返回一个对象,允许您为处理传入的数据添加过滤器。虽然 formatter 仅在组件渲染时应用,但 filters 总是应用,一旦调用 $field->value() 方法。

$field = new HtTextin('price');
$field->filters()->strip('$')->replace(',','.')->trim();
$field->context(['price'=>'$ 30,90']);

echo $field->value();

输出

30.90

验证

通过相同的 filters api 添加验证约束。

$field = new HtTextin('amount');
$field->filters()->maxval(10, "Cannot exceed 10.");
$field->context(['amount'=>15]);
$field->error(true); // activates error reporting on the UI

echo $field;

输出

<div class="widget 589f856daf2f4" style="display:block">
 <input name="amount" value="" />
 <div style="color:yellow;background:red" class="error">
    Cannot exceed 10.
 </div>
</div>

注意:有关 filters api 的更多信息,请参阅 本文档