你可以嘗試刪除'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(); ?>
而且我也有一個包含test
動作就像一個PostController中:
public function actionTest()
{
var_dump($_POST);
}
它工作正常。
array (size=2)
'position' => string '234' (length=3)
'yt0' => string 'test' (length=4)
所以請確保您的表單是通過POST方法發送的,並且在您填充maskedTextField後提交。
謝謝,但你的答案不正確,我沒有任何模型,所以你說我刪除''model'=> null'但是$ _POST ['position']爲空... – shgnInc
@ Shgn.ir:我更新了我的答案。請看看它! – secretlm
是的,我真的很確定表單的方法是post,因爲我有一些其他的字段被它正確地發送。 'echo CHtml :: beginForm($ this-> createUrl('create',array('form'=> $ form_id)),'post',array('id'=>'form-id',));'' – shgnInc