2017-12-18 464 views
0

我有两个fileds,即使用两个不同的相同模型类的实例。Yii2多种模式在一种形式js验证

Test Case Video

$form->field($billing_address, 'zip', 
[ 
    'selectors' => [ 
     'input' => '#billing-zip', 
     'container' => '#billing-container', 
    ], 
    'options' => ['id' => 'billing-container'], 
])->textInput(['maxlength' => 11, 
       'name'=> 'Billing_Address[zip]', 
       'id'=>'billing-zip']); 

//Shipping 
$form->field($shipping_address, 'zip', 
[ 
    'selectors' => [ 
     'input' => '#shipping-zip', 
     'container' => '#shipping-container', 
    ], 
    'options' => ['id' => 'shipping-container'], 
])->textInput(['maxlength' => 11, 
       'name'=> 'Shipping_Address[zip]', 
       'id'=>'shipping-zip']); 

当我完成灌装领域,就会显示该有错误只有字段的错误。 但是,当我推提交,如果拉链领域的一个有错误,错误出现所有拉链领域

public function rules() 
{ 
     return [ 
      [['zip'], 'string', 'max' => 23], 
     ]; 
} 
+0

发布您的模型规则。 –

+0

完成后,添加视频以显示问题 – user1713785

回答

0

我认为你可以使用这样的事情在你的控制器:

if(Model::loadMultiple($model_array, Yii::$app->request->post()) && Model::validateMultiple($model_array) && $model->validate()){ 
     //your stuff 
} 

其中$ model_array是一组模型

$model_array['model1'] = new YourModelClass(); 
$model_array['model2'] = new YourModelClass(); 

Documentation

+0

问题不在控制器中,而是在JS验证中。 – user1713785

+0

您是否阅读过有关验证的[documentation](http://www.yiiframework.com/doc-2.0/guide-input-validation.html#client-side-validation)?您是否启用了客户端验证?如果您需要一些帮助,请告诉我们您的代码 –

+0

代码位于第一条消息的上方。客户端验证不起作用。如你所见,一个模型中有两个相同的字段,如果一个字段没有通过验证,第二个字段显示相同的错误 – user1713785