1

yii1.1.12でクライアント側の検証を行おうとすると問題が発生します。私は以下を持っています

<?php
Yii::app()->clientScript
        ->registerCoreScript('jquery');
?>
<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'my-form',
    'enableClientValidation' => true,
        'clientOptions'=> array('validateOnSubmit'=>true,
                                 'afterValidate'=>'js:function() 
                                        {     
                                           return false
                                        }'
                                ),
        'htmlOptions' => array('enctype' => 'multipart/form-data'),
)); 
?>

検証後にfalseを返すを使用しても、フォームは送信されたままです。これを解決する方法はありますか?

ありがとう。

4

4 に答える 4

4

あなたは正しい道を進んでいるかもしれません。しかし、Yii クライアント側の検証は、フォームに表示されるエラーにも依存します。その変数よりもメソッドを使用して表示エラーが発生した場合、CHtml::error()クライアント側の検証は行われません。コードを投稿していないため、何を使用しているのかはわかりません。なので、Using$form->error()メソッドを試してみてください。それでも問題が解決しない場合はお知らせください。

また、以下のリンクを確認してください。

<?php
Yii::app()->clientScript
        ->registerCoreScript('jquery');
?>
<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'my-form',
    'enableClientValidation' => true,
    'clientOptions'=> array('validateOnSubmit'=>true),
    'htmlOptions' => array('enctype' => 'multipart/form-data'),
)); 
?>

http://www.waytoblogger.com/blog/technical/yii/yii-client-side-validation/

于 2012-09-28T05:15:16.557 に答える
2

これを試して:

<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'my-form',
    'enableClientValidation' => true,
    'htmlOptions' => array('enctype' => 'multipart/form-data'),
)); 
?>

clientOptionsあなたが特定のことをしていないことがわかります。だから削除しただけ。また、自分で jquery を含める必要はありません。私が知る限り、yii は必要なときに自動的にそれを含めます (ここではアクティブフォームが必要だと思います)。このURLを参照してください。

于 2012-09-27T16:04:49.963 に答える
0

解決しました。削除したばかり

<?php
Yii::app()->clientScript
        ->registerCoreScript('jquery');
?>
于 2012-09-27T16:16:43.400 に答える