castamir/forms

Nette Forms: 大大简化了网页表单的制作

v2.3.6 2015-10-19 01:41 UTC

README

Downloads this Month Build Status

Nette\Forms大大简化了创建和处理网页表单的过程。它究竟可以做什么呢?

  • 在客户端(JavaScript)和服务器端验证发送的数据
  • 提供高安全性
  • 多种渲染模式
  • 翻译,i18n

为什么你需要为简单的网页表单设置框架呢?你不必担心编写两个验证脚本(客户端和服务器端)的日常任务,你的代码将免受安全漏洞的侵害。

Nette 框架投入了大量努力以确保安全性,因为表单是最常见的用户输入,所以 Nette 表单几乎坚不可摧。所有操作都是动态和透明进行的,无需手动设置。像跨站脚本(XSS)和跨站请求伪造(CSRF)这样的已知漏洞都会被过滤,以及特殊控制字符。所有输入都会检查 UTF-8 的有效性。在验证时,每个多选框、选择框和类似元素都会检查伪造的值。听起来不错?让我们试试吧。

查看文档.

第一个表单

让我们创建一个简单的注册表单

use Nette\Forms\Form;

$form = new Form;

$form->addText('name', 'Name:');
$form->addPassword('password', 'Password:');
$form->addSubmit('send', 'Register');

echo $form; // renders the form

尽管我们提到了验证,但我们的表单还没有。让我们修复它。我们要求用户告诉我们他们的名字,所以我们应该调用setRequired()方法,该方法的可选参数是在用户没有填写名字时显示的错误消息

$form->addText('name', 'Name:')
	->setRequired('Please fill your name.');

尝试提交一个没有名字的表单 - 你会不断地看到这个消息,直到你满足验证规则。我们剩下的就是设置 JavaScript 规则。幸运的是,这很简单。我们只需要链接到位于发行包中的/client-side/formsnetteForms.js

<script src="netteForms.js"></script>

Nette 框架将required类添加到所有必填元素。添加以下样式将使name输入框的标签变为红色。

<style>
.required label { color: maroon }
</style>

继续….