我在主要版面中使用 Yii用户扩展程序我有一个注册链接,这是所有 Cmenu
查看/主要布局
echo CHtml::link('Signup','#',array('id'=>'regi'));
$("#regi").click(function(){
$.ajax({
type:'GET',
url:'<?php echo Yii::app()->request->baseUrl;?>/index.php/user/registration',
success:function(res){
$("#dispdata").show();
$("#dispdata").html(res);
}
});
});
<div id="dispdata"><div>
** yii用户扩展名**可以完美呈现,如果表单值有效,甚至可以正确提交。
但如果值不正确且为空,则会重定向到url ... / user / registration
这不是我的需要。我需要指导我该做什么,如果值不正确或空白,它不应重定向并在模型窗口中显示错误。
我确实尝试过但几乎无法获得满意的结果
如果我放置以下模型窗口本身并不显示我该做什么
我放置模块registrationController
....//some code here (**in yiiuser register controller**)
if ($model->save()) {
echo CJSON::encode(array(
'status'=>'success',
));
}
....//some code here...
Yii::app()->clientScript->scriptMap['jquery.js'] = false;
$this->renderPartial('registration',array('model'=>$model,),false,true);
模块视图注册中的
<?php echo CHtml::ajaxSubmitButton(Yii::t('registration'),CHtml::normalizeUrl(array('user/registration','render'=>false)),array('dataType'=>'json',
'success'=>'function(data) {
if(data != null && data.status == "success") {
$("#registration-form").append(data.data);
}
}')); ?>
任何人都可以指导我工作过去10天十天尝试过每个钩子或骗子方法但是无法获得结果......如何能够完成客户端验证的模型窗口.....请指导我或让我知道更好的事情可以做到
规则
if (!(isset($_POST['ajax']) && $_POST['ajax']==='registration-form')) {
array_push($rules,array('verifyCode', 'captcha', 'allowEmpty'=>!UserModule::doCaptcha('registration')));
同样没有所需字段的属性
已更改为
array_push($rules,array('verifyCode', 'captcha','message' => UserModule::t("captcha cannot be blank.")));
并将验证码添加到必填字段
尚未奏效,
答案 0 :(得分:1)
简单的方法是在Ajax操作中使用render方法并为此操作创建空布局。如果这样做,验证脚本将包含在服务器响应中。您还需要使用Yii::app()->clientScript->scriptMap
排除jquery.js和其他脚本,并始终将它们包含在主布局中。