thewebmen / silverstripe-ajaxforms
Silverstripe AJAX表单模块
1.0.1
2018-02-23 13:53 UTC
Requires
- silverstripe/cms: ^4.0@dev
- silverstripe/vendor-plugin: ^1.0
This package is auto-updated.
Last update: 2024-09-07 00:27:55 UTC
README
简介
为silverstripe提供的Ajax表单,使用jQuery和jQuery validate
要求
- SilverStripe CMS ^4.0
- jQuery
- jQuery validate
安装
composer require "thewebmen/silverstripe-ajaxforms"
如何使用
请确保您的页面已加载jQuery和jQuery validate以使用Ajax表单。同时包含以下js文件
Requirements::javascript('thewebmen/silverstripe-ajaxforms:resources/js/ajaxforms.js');
然后通过扩展TheWebmen\Ajaxforms\AjaxForm类创建一个表单,该类在成功时返回TheWebmen\Ajaxforms\AjaxFormResponse类的实例。
表单示例
use TheWebmen\Ajaxforms\AjaxForm;
use SilverStripe\Control\RequestHandler;
use SilverStripe\Forms\FieldList;
use SilverStripe\Forms\FormAction;
use SilverStripe\Forms\TextField;
use SilverStripe\Forms\RequiredFields;
class ExampleForm extends AjaxForm {
public function __construct(RequestHandler $controller = null)
{
$fields = new FieldList(array(
TextField::create('MyField', 'This is a field')
));
$actions = new FieldList(array(
FormAction::create('handle', 'Send')
));
$validator = new ExampleFormValidator(array(
'MyField'
));
parent::__construct($controller, 'MyField', $fields, $actions, $validator);
}
public function handle($data){
$response = new \TheWebmen\Ajaxforms\AjaxFormResponse();
return $response->redirect('http://www.google.nl');
}
}
class ExampleFormValidator extends RequiredFields {
public function php($data)
{
$valid = parent::php($data);
if($data['MyField'] != 'Test'){
$this->validationError(
'MyField',
'This field is only valid if the value is: Test',
'required'
);
$valid = false;
}
return $valid;
}
}
表单错误使用jQuery validate显示,您可以使用自己的jQuery validate来自定义设置,或者让ajaxforms.js脚本处理以使用jQuery validate的默认设置。
当表单正在提交时,会添加".is-posting"类到表单中,您应该使用这个类来添加一些进度样式。
待办事项
- 改进文档
- 为redirectToPage响应添加检查页面是否存在