[英]Yii2 ActiveForm ceased to work
我對Yii2表單,輸入字段和提交按鈕有一個非常奇怪的問題。 提交按鈕已經死了,這些字段的規則不適用。 按下按鈕時什么也沒有發生。
但是,它之前一直運行良好。 我所做的就是將通話轉移到另一個模型。
當它工作時,我從布局文件(main.php)中的菜單(kartik sidenav)進行調用:$ fruitbasket [] = ['label'=>'Add New ...','url'=> [ '/ fruit-bananas / create']];
當它不起作用時,我已將此調用移至另一個視圖(水果/索引),並將上面的代碼(在main.php中)更改為'label'=> Icon :: show('plus')。 '添加新...','URL'=> ['/ fruit / index'],..,然后在fruit / index文件中,執行另一個kartik sidenav小部件,如下所示:
<?php>
echo SideNav::widget([
...
'items' => [
[
'label' => Icon::show('folder-open') . '<span class=sideitems>Bananas</span>', 'url' => ['/fruit-bananas/create'],
],
]
]);
?>
它與水果香蕉/創建的鏈接相同,並且似乎有效。 表單將按其應有的方式呈現。 但是現在我遇到了我描述的問題。 在第一種情況下,提交按鈕和規則有效。 在后一種情況下則不是。 我希望這是可以理解的。 編輯:添加一些信息:actionCreate:
public function actionCreate()
{
$model = new FruitBananas();
$items = ArrayHelper::map(Bananas::find()->all(),'id','brands');
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['view', 'id' => $model->id]);
} else {
return $this->render('create', [
'model' => $model,
'items' => $items
]);
}
}
的ActiveForm:
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'material')->dropDownList($items, ['id' => 'form-field-len']) ?>
<div class="form-group">
<?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
最后,我解決了我的問題。 造成這種情況的原因並不在於您可能立即看到。 在AppAsset.php中,我對我之前在那添加的一行進行了注釋:
public $js = [
'https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js'
];
我在此處添加了這行一次,然后對其進行了注釋,同時嘗試使語義UI和D3.js正常工作。 顯然它必須處於活動狀態。 這讓我有些擔心。 如上所述的基本功能應該與已經為Yii2內置的jQuery一起使用嗎? 總的來說,所有這些在線圖書館都很麻煩。 也許是即將到來的話題的主題?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.