2017-03-13 10 views
0

私の見解では、以下のようなフォームが表示されますが、「クリックして」クリックすると、ポップアップが表示され、自動的に消えます。なぜそれは自動的に消えるのですか?モーダルは自動的に隠れていますか?

私は、ビューを持っている:

<?php 

use yii\helpers\Html; 
use kartik\widgets\ActiveForm; 
use kartik\widgets\DatePicker; 
use yii\helpers\ArrayHelper; 
use yii\bootstrap\Modal; 

Modal::begin([ 
    'header' => '<h2>Hello world</h2>', 
    'toggleButton' => ['label' => 'click me'], 
]); 

echo "<div id='modalContent'></div>"; 

Modal::end(); 

とフォーム:

<?php $form = ActiveForm::begin([ 
    'options' => ['entype' => 'multipart/form-data'] 
]); ?> 

..... 
..... 
..... 

<?php ActiveForm::end(); ?> 

私はこの上でいくつかの作業例を参照してくださいもらえますか?

ありがとうございます。

+0

あなたの例からモーダルダイアログが私のために働いています。私は、いくつかのJavaスクリプトが「私をクリックしてください」ボタンをクリックしている間にトリガされることを望みます。そのページから独自のJavaスクリプトスクリプトファイルまたはカスタムコードを削除して、一度試してみてください。 –

答えて

0

おそらく、ブートストラップのJavaScriptを2回読み込み、バンドルに1回ロードすると、DatePicker/ActiveForm/Modalが自分のバンドル内で再度ロードすることがあります。ロードされたアセットバンドルを確認してください。Yii2デバッガは、アセットバンドルという名前のカスタムビューを提供しています。バンドルとロードされたファイルを確認することができます。

+0

'' bower_components/bootstrap/dist/js/bootstrap.min.js '、 'をassets/AppsAssets.php'で削除したところ、動作を開始しました。 – maan81

+0

しかし、datePickerとactiveForms&Modalが使用されていないサイトでは、ReferenceError:jQueryが定義されていません。私はそれをどのように扱うのですか? – maan81

+0

'YiiAsset'をアプリケーションのメインバンドル(デフォルトでは' AppAsset')にロードする必要があります。 'YiiAsset'は' JqueryAsset'に依存し、jQueryをロードします。 – Ravenous

関連する問題