簡體   English   中英

Yii2 ActiveForm停止工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM