如何在弹出式对话框中的表单中显示验证错误?我想在弹出式对话框中显示这些错误,而不是将其显示在表单顶部,以便用户点击正常,解雇方框。如何在yii中做到这一点?
答案 0 :(得分:0)
如果您启用了客户端验证,那么您将在文本框下拉菜单中收到错误消息。弹出错误消息没有内置选项。
如果你需要弹出错误信息显示,那么你必须使用jquery。然后在Yii论坛中添加以帮助其他人: - )
有关客户端验证的详细信息,请参阅此link(Yii论坛)
答案 1 :(得分:0)
您可以使用自定义CFormModel自行构建HTML视图,并在模式弹出窗口中使用getError()方法。
请参阅:http://www.yiiframework.com/doc/api/1.1/CModel#getError-detail
答案 2 :(得分:0)
将您自己的javascript函数名称注册到afterValidate
,这是CActiveForm表单类中clientOptions
属性中的一个选项。
您的表单声明应该
'clientOptions' => array(
'validateOnSubmit' => true,
'afterValidate' => 'js:myFunc',
),
您的表单将显示为吼叫
<?php
$form = $this->beginWidget('CActiveForm', array(
'id' => 'a-form',
'enableClientValidation' => true,
'enableAjaxValidation' => true,
'errorMessageCssClass' => 'required',
'clientOptions' => array(
'validateOnSubmit' => true,
'afterValidate' => 'js:myFunc',
),
));
?>
------Your form fields------------
------Your form fields------------
------Your form fields------------
<?php $this->endWidget(); ?>
现在,你的myFunc代码:
<script type="text/javascript" charset="utf-8">
function myFunc(form, data, hasError)
{
if (hasError)
{
var errors='';
$.each(data, function(obj)
{
errors+=data[obj][0]+"\n";
});
alert(errors);
// Do what ever you want
return true;
}
}
</script>