castamir / forms
Nette Forms: 大大简化了网页表单的制作
v2.3.6
2015-10-19 01:41 UTC
Requires
- php: >=5.3.1
- nette/component-model: ~2.2
- nette/http: ~2.2
- nette/utils: ~2.2
Requires (Dev)
- latte/latte: ~2.3.2
- nette/di: ~2.3
- nette/tester: ~1.3
- tracy/tracy: ~2.2
Conflicts
- nette/nette: <2.2
This package is auto-updated.
Last update: 2024-09-05 20:46:11 UTC
README
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/forms
的netteForms.js
。
<script src="netteForms.js"></script>
Nette 框架将required
类添加到所有必填元素。添加以下样式将使name输入框的标签变为红色。
<style> .required label { color: maroon } </style>
继续….