我似乎无法找到答案,尽管我可能看错了。我目前有一个Yii应用程序,我可以创建帐户和存储人员数据。一个这样的数据是人IBAN号。 目前我有一个文本输入,人们可以输入国家代码和22位数字。然后我能够验证这个和错误或相应保存。 我想做的一件事是能够有一个分割输入框。在单个输入中,Iban如下所示: ES0012345678912345678912
我想像这样分开它: ES00 1234 5678 91 2345678912
这使得它更加用户友好且易于阅读。我当然可以改变它在视图上看起来的样子但是在编辑时我希望在一行中有五个输入框,一个需要4个,下一个4个字符,下一个4个等等。我的意思是一个例子:
有人可以指出我如何实现这一目标。是否有一种我可以使用的分割输入,或者我是否需要创建5个单独的输入并在提交时加入它们并从此处进行验证?简单地将保存的条目拆分到这5个框中的能力将会更加容易。
非常感谢
答案 0 :(得分:3)
作为建议,如果您使用模型,只需添加以下属性:
Class ModelName extends CActiveRecord {
public $ibanNumber;
public $ibanNumberPart1;
public $ibanNumberPart2;
public $ibanNumberPart3;
public $ibanNumberPart4;
public function beforeValidate(){
if(parent::beforeValidate()){
$this->ibanNumber=$this->ibanNumberpart1.$this->ibanNumberPart2 ...
return true;
}
}
//then write rules and so on
...}
通过将$ ibanNumberPart1..4属性添加到模型中,它将所有属性都知道为模型属性。因此,您可以在视图中添加名称为ibanNumberPart1
的4个字段,依此类推。也可以为每个属性编写验证规则。例如:
public function rules(){
return array(
array('ibanNumberPart1','required'),
array('ibanNumberPart1','numerical','integerOnly'=>true),
);
}
通过这种方式,您可以将输入分成4个部分,最后将所有输入分成1个名为$ibanNumber
的字段。