如何使用 Yii 条件验证器在客户端工作?
How to use YiiConditionalValidator to work on client side?
我正在使用 Yii 1.1.20 的 YiiConditionalValidator.php 扩展。
当我将按钮 (is_master) 从 1 切换到 0 时,我想要必填字段 (master_id) ...
is_master - 1 或 0
master_id - 如果 "is_master" = 0 使“master_id 需要...
所以...我的模型规则如下所示:
public function rules()
{
return [
['is_master', 'required'],
['is_master', 'validators.YiiConditionalValidator',
'if' => [
['is_master', 'compare', 'compareValue'=> "0"],
],
'then' => [
['master_id', 'required'],
],
],
['is_master, master_id', 'safe', 'on' => 'search'],
];
}
在我的表单中,我设置了以下选项:
'enableAjaxValidation' => false,
'enableClientValidation' => true,
'clientOptions' => array(
'validateOnChange' => true,
'validateOnSubmit' => true,
),
我的$form好像看不到这个条件规则...
感谢您的帮助!
虽然没有人知道 ^____^ ...我几乎没有研究,答案是 YiiConditionalValidator.php 中缺少一个功能...
当你看 yii 1.1.x framework/validators 其中大部分有 2 个功能:
- 受保护的函数 validateAttribute($object,$attribute)
和
- public 函数 clientValidateAttribute($object,$attribute)
这就是为什么 YiiConditionalValidator.php 不能在客户端工作,因为它缺少 public 函数 clientValidateAttribute($object,$attribute) which "Returns the JavaScript needed for performing client-side validation"...
如果您想知道它看起来如何,请检查您的项目文件夹/framework/validators
此致!
汤姆
我正在使用 Yii 1.1.20 的 YiiConditionalValidator.php 扩展。 当我将按钮 (is_master) 从 1 切换到 0 时,我想要必填字段 (master_id) ...
is_master - 1 或 0 master_id - 如果 "is_master" = 0 使“master_id 需要...
所以...我的模型规则如下所示:
public function rules()
{
return [
['is_master', 'required'],
['is_master', 'validators.YiiConditionalValidator',
'if' => [
['is_master', 'compare', 'compareValue'=> "0"],
],
'then' => [
['master_id', 'required'],
],
],
['is_master, master_id', 'safe', 'on' => 'search'],
];
}
在我的表单中,我设置了以下选项:
'enableAjaxValidation' => false,
'enableClientValidation' => true,
'clientOptions' => array(
'validateOnChange' => true,
'validateOnSubmit' => true,
),
我的$form好像看不到这个条件规则...
感谢您的帮助!
虽然没有人知道 ^____^ ...我几乎没有研究,答案是 YiiConditionalValidator.php 中缺少一个功能...
当你看 yii 1.1.x framework/validators 其中大部分有 2 个功能:
- 受保护的函数 validateAttribute($object,$attribute) 和
- public 函数 clientValidateAttribute($object,$attribute)
这就是为什么 YiiConditionalValidator.php 不能在客户端工作,因为它缺少 public 函数 clientValidateAttribute($object,$attribute) which "Returns the JavaScript needed for performing client-side validation"...
如果您想知道它看起来如何,请检查您的项目文件夹/framework/validators
此致! 汤姆