arillo/silverstripe-jqueryformvalidator

此包最新版本(dev-master)没有可用的许可信息。

为 silverstripe 3.0+ 表单添加了 jquery.validation 功能。

dev-master 2013-10-30 17:41 UTC

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
				)
			)
		)
);