1

我的表单中有 CMaskedTextField,当我填写它时,$_POST[] 不返回任何值!?

<?php echo CHtml::label(Yii::t('models', 'form.label.position'), 'position'); ?>
    <?php
    $this->widget('CMaskedTextField', array(
            'model' => null,
            'name' => "position",
            'mask' => '999',
            'htmlOptions' => array(
            'size' => 5,
            'placeholder' => Yii::t('models', 'form.hint.position'),
            'title' => Yii::t('models', 'form.hint.position'),
            ),
    ));
    ?>
4

1 回答 1

0

您可以尝试删除 'model' => null

<?php echo CHtml::label(Yii::t('models', 'form.label.position'), 'position'); ?>
    <?php
    $this->widget('CMaskedTextField', array(
            'name' => "position",
            'mask' => '999',
            'htmlOptions' => array(
            'size' => 5,
            'placeholder' => Yii::t('models', 'form.hint.position'),
            'title' => Yii::t('models', 'form.hint.position'),
            ),
    ));
    ?>

在您的小部件中,如果您想使用您的model那么您应该删除name并添加attribute.

更新

在我的表格中:我有这样的表格视图:

<?php echo CHtml::beginForm('post/test', 'post'); ?>

    <?php echo CHtml::errorSummary($model); ?>

    <div class="row">
        <?php echo CHtml::label(Yii::t('models', 'form.label.position'), 'position'); >
    <?php
    $this->widget('CMaskedTextField', array(            
            'name' => "position",
            'mask' => '999',
            'htmlOptions' => array(
            'size' => 5,
            'placeholder' => 'place holder',
            'title' => 'title'
            ),
    ));
    ?>
    </div>

    <div class="row submit">
        <?php echo CHtml::submitButton('test'); ?>
    </div>

<?php echo CHtml::endForm(); ?>

而且我还有一个 PostController 包含test以下操作:

public function actionTest()
    {       
        var_dump($_POST);
    }

它工作正常。

array (size=2)
  'position' => string '234' (length=3)
  'yt0' => string 'test' (length=4)

因此,请确保您的表单是通过 POST 方法发送的,并且在您填写 maskedTextField 后提交。

于 2013-11-27T16:34:56.497 回答