0

次のフォームは送信されません。何か不足していますか?

            <?php
            $form = $this->beginWidget('CActiveForm', array(
                'id' => 'site-search-form',
                'action' => Yii::app()->createAbsoluteUrl('/moduleA/actionB'), //array('/moduleA/actionB'),
                'enableClientValidation' => true,
                'enableAjaxValidation' => true,
                'clientOptions' => array(
                    'validateOnSubmit' => true,
                ),
            ));
            echo $form->hiddenField($model, 'is_a', array('id' => 'is_candidate'));
            ?>
            <div class="blueline"></div>
            <div class="row">
                <?php echo $form->label($model, 'position_type'); ?>
                <?php echo $form->error($model, 'position_type'); ?>
                <?php
                $arr = CHtml::listData(PositionType::model()->findAll(array('condition' => 'status=1', 'order' => 't.order')), 'id', 'name');
                foreach ($arr as $k => $v) {
                    $arr[$k] = $v . ' Positions';
                }
                echo $form->dropDownList($model, 'position_type', $arr);
                ?>
                <div class="clear-float"></div>
            </div>
            <div class="row">
                <?php echo $form->label($model, 'location'); ?>
                <?php echo $form->error($model, 'location'); ?>
                <?php echo $form->dropDownList($model, 'location', CHtml::listData(CitySector::model()->findAll(), 'id', 'name')); ?>
                <div class="clear-float"></div>
            </div>
            <div class="row buttons">
                <?php echo CHtml::submitButton(''); ?>
                <div class="clear-float"></div>
            </div>
            <?php
            $this->endWidget();
            ?>
4

3 に答える 3

2

レンダリングしなかった属性で検証エラーが発生する可能性が非常に高くなります。その場合、<?php echo CHtml::errorSummary($model) ?>すべてのモデル エラーを表示する場所を一時的に追加できます。

于 2013-04-03T20:10:23.877 に答える
1

同じ問題に直面しているが、選択した回答が機能しない人のために。AJAX 検索を実装しようとしていないことを確認してください。AJAX 検索は、フォームの送信を防止するコードをインストールし、非同期でデータを取得しようとします。そのコードが失敗したり、javascript エラーが発生せずに機能しなかった場合は、困難な状況になります。AJAX コードが実装されているかどうかを確認するには、ビューで次のコードを見つけてみてください。

Yii::app()->clientScript->registerScript('search', "
   ...
   $('.search-form form').submit(function(){
   ...
   return false; //<-- here's the trouble

行を return false から true に変更すると、非 AJAX の方法で動作するようになります。

于 2014-06-11T12:52:10.377 に答える
1

clientOptionsYii フォーム ウィジェットからパラメータを削除して、次のことを試してください。

'clientOptions' => array(
    'validateOnSubmit' => true,
),
于 2013-04-04T09:14:32.800 に答える