我在模块中有一个登录表单,它使用一个 chtml 文本字段,它使用 jQuery 进行客户端验证,但如果用户不存在并输入两个字段,它会重定向到登录 url,并且不会在模式弹出窗口中显示错误。
我在主布局中通过 ajax 调用模块登录。可以在任何页面,完美调用登录。
但如果登录凭据错误,唯一不起作用的是服务器端验证。它重定向到用户/登录页面,并且不在模式窗口中显示服务器端验证错误。
<?php echo CHtml::beginForm(); ?>
<div class="row1">
<?php echo CHtml::activeTextField($model,'username',array('placeholder'=>'Username or Email','class'=>'pclas')) ?>
</div>
<div class="row1">
<?php echo CHtml::activePasswordField($model,'password',array('placeholder'=>'Password','class'=>'pclas')) ?>
</div>
<div class="remsub">
<div class="rememberMe1">
<?php echo CHtml::activeCheckBox($model,'rememberMe',array('class'=>"btn1"));echo CHtml::activeLabelEx($model,'rememberMe',array('class'=>"btn1")); ?>
<?php ?>
</div>
<div class="submit1">
<?php echo CHtml::submitButton(UserModule::t("Login"),array('class'=>"btn")); ?>
</div>
<div class="regpwd">
<?php echo CHtml::link(UserModule::t("Register"),Yii::app()->getModule('user')->registrationUrl,array('class'=>'pclas1')); ?> | <?php echo CHtml::link(UserModule::t("Lost Password?"),Yii::app()->getModule('user')->recoveryUrl,array('class'=>'pclas1')); ?>
< /div>
</div>
<?php echo CHtml::endForm(); ?>
<?php
$form = new CForm(array(
'elements'=>array(
'username'=>array(
'type'=>'text',
'maxlength'=>32,
),
'password'=>array(
'type'=>'password',
'maxlength'=>32,
),
'rememberMe'=>array(
'type'=>'checkbox',
)
),
'buttons'=>array(
'login'=>array(
'type'=>'submit',
'label'=>'Login',
),
),
), $model);
?>
并且它是登录表格而不是 注册表单是我可能需要的,或者任何其他解决方案将不胜感激