Jquery 为什么GridView过滤器在模式引导时不工作?
我使用了模态引导来查看GridView,当我使用过滤器并按下enter键时,它不起作用,它会影响到父窗口按submit/save按钮。为什么? 这是我的jquery函数Jquery 为什么GridView过滤器在模式引导时不工作?,jquery,gridview,yii2,Jquery,Gridview,Yii2,我使用了模态引导来查看GridView,当我使用过滤器并按下enter键时,它不起作用,它会影响到父窗口按submit/save按钮。为什么? 这是我的jquery函数 $(document).on('ready pjax:success', function() { $('#BtnModalPriceList').click(function(e) { e.preventDefault(); $('#modal').modal('show')
$(document).on('ready pjax:success', function() {
$('#BtnModalPriceList').click(function(e) {
e.preventDefault();
$('#modal').modal('show')
.find('#modalContent')
.load($(this).attr('value'));
});
});
这是我在父窗体中的模式引导
<?= Html::button('Price List', [
'value' => Url::to('../pricelist/list'),
'class' => 'btn btn-primary',
'id' => 'BtnModalPriceList'
]) ?>
<?php
Modal::begin([
'header' => 'Price List',
'id' => 'modal',
'size' => 'modal-md',
]);
echo "<div id='modalContent'></div>";
Modal::end();
?>
我错过了什么 添加:
使用yii\bootstrap\Modal代码>
您应该阅读和,因为您是通过ajax加载Pjax的(听起来很有趣)。你需要给它分配一个id。通过ajax加载的所有小部件都需要有用户定义的id,以便Yii能够将它们与已加载的小部件区分开来
<?php
$gridColumns = [
['class' => 'yii\grid\CheckboxColumn', 'checkboxOptions' => ['onclick' => 'js:selectItem(this.value, this.checked)']],
[
'attribute' => 'price',
'format' => ['decimal', 0],
],
'date',
[
'attribute' => 'agen_id',
'value' => 'agen.agen_name'
],
'remark_1:ntext',
'remark_2:ntext',
] ?>
<?php Pjax::begin([
//add some id here
'id' => 'your-custom-id'
]); ?>
<?=
GridView::widget([
'id' => 'kv-grid-pricelist',
'dataProvider'=>$dataProvider,
'filterModel'=>$searchModel,
'columns'=>$gridColumns,
]);
?>
我终于让它工作了。感谢facebook上Yii PHP框架社区的成员。
答案是
1.将模态置于活动窗体之外。
2.通过提供id来使用Pjax,例如
Pjax::begin(['id'=>'stav_id','timeout'=>false]) 我已经这样做了,模态可以显示出来,但我不能过滤它。并且把你的模态放在表单之外。
<?php
$gridColumns = [
['class' => 'yii\grid\CheckboxColumn', 'checkboxOptions' => ['onclick' => 'js:selectItem(this.value, this.checked)']],
[
'attribute' => 'price',
'format' => ['decimal', 0],
],
'date',
[
'attribute' => 'agen_id',
'value' => 'agen.agen_name'
],
'remark_1:ntext',
'remark_2:ntext',
] ?>
<?php Pjax::begin([
//add some id here
'id' => 'your-custom-id'
]); ?>
<?=
GridView::widget([
'id' => 'kv-grid-pricelist',
'dataProvider'=>$dataProvider,
'filterModel'=>$searchModel,
'columns'=>$gridColumns,
]);
?>