-1

jQueryを使用してクライアント側の検証を行うchtmlテキストフィールドを使用するモジュールにログインフォームがありますが、ユーザーが存在せず両方のフィールドを入力すると、ログイン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);


  ?>

それはログインフォームであり、サインアップフォームではありません.

4

1 に答える 1

0

はい、あなたのコードを追加してください。

役立つ可能性のあるいくつかのこと:

  • おそらく、フォームを使用しているユーザーは、検証を行うコントローラー/アクションへのアクセスを許可されていませんか? これにより、Yii は彼/彼女をログイン ページにリダイレクトします。検証を行うコントローラー/アクションのアクセス許可を調べてみてください。

  • フォームで ajax 検証が有効になっていることを確認します。

    <?php $form = $this->beginWidget('CActiveForm', array(
        'id'=>'user-form',
        'enableAjaxValidation'=>true, <----------
        'enableClientValidation'=>true, 
        'focus'=>array($model,'firstName'),
    )); ?>
    
于 2014-05-01T23:18:44.073 に答える