2017-12-18 515 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