arillo / silverstripe-jqueryformvalidator
此包最新版本(dev-master)没有可用的许可信息。
为 silverstripe 3.0+ 表单添加了 jquery.validation 功能。
dev-master
2013-10-30 17:41 UTC
Requires
- silverstripe/cms: 3.*
- silverstripe/framework: 3.*
This package is auto-updated.
Last update: 2024-09-09 02:16:04 UTC
README
为 silverstripe 3.0+ 表单添加了 jquery.validation 功能。更多信息请访问 http://jqueryvalidation.org/。
用法
要使其工作,请确保您的页面已包含 jquery。为了向后兼容旧浏览器,您还可能需要加载 json2.js。这两个文件都可以在 modulefolder/javascript/libs 中找到。
以下是如何在表单上启动验证
$form = new Form(
$this,
'Form',
$fields,
new FieldList(
new FormAction(
'FormHandler',
'Submit'
)
),
RequiredFields::create(....)
);
JQueryValidation::create($form, $config)
期望一个表单和一个可选的配置数组,该数组覆盖了基础配置中的值。查看 JQueryValidation::$base_config 了解可用的键/值对。
JQueryValidation::create(
$form,
array(
'validator' => array(
'errorElement' => 'div'
)
...
..
.
)
);
JQueryValidation->generate()
对于自动创建,请使用
// This will inspect all form fields and add their validation methods.
// It also will add required checks provided by the form's RequiredFields.
JQueryValidation::create($form)->generate();
// It is also possible to provide custom error messages and behaviour through passing a config array like this:
JQueryValidation::create($form)->generate(array(
'messages' => array(
'CheckboxField_DATA' => array(
'required' => 'Custom message'
)
)
));
// Expected hooks are messages, rules, groups.
JQueryValidation->custom()
如果您想提供自己的验证文件,可以使用此功能
JQueryValidation::create($form)->custom('path/to/your.js');
// It is also possible to provide information about which additional js files should be loaded, like this:
JQueryValidation::create($form)->custom(
'path/to/your.js',
array(
'additionalMethods', // load additional-methods.min.js
'metadata', // load jquery.metadata.js
'moment', // load moment.min.js
'date' // load date.js
)
);
支持表单字段
- CheckboxField
- ConfirmedPasswordField
- DropdownField
- DateField
- DatetimeField
- EmailField
- PasswordField
- OptionsetField
- NumericField
- UploadField
- TimeField
- TextareaField
- TextField
jQuery.validator 提供的验证类型
标准
- required – 使元素必填。
- remote – 请求资源以检查元素的合法性。
- minlength – 使元素需要给定最小长度。
- maxlength – 使元素需要给定最大长度。
- rangelength – 使元素需要给定值范围。
- min – 使元素需要给定最小值。
- max – 使元素需要给定最大值。
- range – 使元素需要给定值范围。
- email – 使元素需要有效的电子邮件地址。
- url – 使元素需要有效的 URL。
- date – 使元素需要日期。
- dateISO – 使元素需要 ISO 日期。
- number – 使元素需要十进制数字。
- digits – 使元素仅需要数字。
- creditcard – 使元素需要信用卡号码。
- equalTo – 要求元素与另一个元素相同。
附加方法
- accept – 仅使文件上传接受指定的 mime 类型。
- extension – 使元素需要特定的文件扩展名。
- phoneUS – 验证有效的美国电话号码。
更多信息请参阅 http://jqueryvalidation.org/documentation/。
如果使用 JQueryValidation->generate(),则某些方法会自动调用。可以通过将它们添加到 $custom 参数中来添加额外的功能。以下示例创建了一个验证 URL 的字段:
// adding a simple textfield to the field list
$fields->push(
TextField::create(
'URL',
'Your website'
)
);
...
..
.
// later, when starting the validation you can add url validtition to this field like this:
JQueryValidation::create($form)
->generate(
array(
'messages' => array(
'URL' => array(
'url' => 'Please enter a valid url.' // add error message
)
),
'rules' => array(
'URL' => array(
'url' => true // add url validation
)
)
)
);