使用jQuery动态添加Yii表单元素

时间:2015-10-09 07:40:37

标签: javascript php jquery forms yii

在尝试将Yii生成的字段动态添加到表单时,我遇到了集成Yii和jQuery的问题。 即,我静态地使用此代码在我的表单上有一个下拉列表:

echo $form->label($model,Yii::t('candidates', 'Contact type'));
$options = CHtml::listData(HrpContactTypes::model()->findAll(),'id','type');
 $ct = array();
 $b=1;
for($i=0;$i<=count($options)-1;$i++) {
    $ct[$b] = Yii::t('candidates', $options[$b]);
    $b++;
}
echo $form->dropDownList($model,'contact_type_id',$ct,array('class'=>'form-control'));

我使用此代码在表单上输入文本:

echo $form->label($model,Yii::t('candidates', 'Contact')); ?>
echo $form->textField($model,'contact', array('required'=>'required', 'class'=>'form-control' ));

然后,我使用此代码动态添加元素到我的表单:

$('#addContact').click(function() {
        $('#row').append(
            '<br><div class="col-md-6">contact type</div><div class="col-md-6">contact</div>'
            );
        return false;
    });

我的问题是:如何动态添加YII DROPDOWNLIST和YII TEXT-INPUT以及JQUERY的帮助?

1 个答案:

答案 0 :(得分:0)

首先请注意编码。

  1. CActiveForm::label() 的第二个参数必须是属性,并且您必须在模型类中翻译它(覆盖方法attributeLabels()),而不是形式:

    public functions attributeLabels() {
        return array(
            'candidates' => Yii::t('candidates', 'Contact type'),
            ATTRUBUTE_NAME => ATTRIBUTE_LABEL
        );
    }
    
  2. 了解loops in php。您可以使用循环变量$b而不是声明其他变量$i,而是从{1}开始从{1}开始获取值,因此$optios的最后一个元素始终为$ct我想你想写这个:

    null
  3. 感谢。