Search 按键上的Yi2网格视图pjax搜索

Search 按键上的Yi2网格视图pjax搜索,search,gridview,yii2,keypress,pjax,Search,Gridview,Yii2,Keypress,Pjax,我正在尝试使用按键上的pjax更新yii2网格视图,就像默认情况下yii2网格视图搜索在模糊或更改事件上工作一样 我正在寻找什么来覆盖按键上的这个功能 任何帮助都将不胜感激。谢谢。您应该执行以下操作: 禁用过滤器输入上的默认提交事件和绑定键控事件 更新后聚焦活动输入 下面是一个简单的工作示例: var input; var submit_form = false; var filter_selector = '#grid-id-filters input'; $("body").on('bef

我正在尝试使用按键上的pjax更新yii2网格视图,就像默认情况下yii2网格视图搜索在模糊或更改事件上工作一样

我正在寻找什么来覆盖按键上的这个功能


任何帮助都将不胜感激。谢谢。

您应该执行以下操作:

  • 禁用过滤器输入上的默认提交事件和绑定键控事件
  • 更新后聚焦活动输入
  • 下面是一个简单的工作示例:

    var input;
    var submit_form = false;
    var filter_selector = '#grid-id-filters input';
    
    $("body").on('beforeFilter', "#grid-id" , function(event) {
        return submit_form;
    });
    
    $("body").on('afterFilter', "#grid-id" , function(event) {
        submit_form = false;
    });
    
    $(document)
    .off('keydown.yiiGridView change.yiiGridView', filter_selector)
    .on('keyup', filter_selector, function() {
        input = $(this).attr('name');
    
        if(submit_form === false) {
            submit_form = true;
            $("#grid-id").yiiGridView("applyFilter");
        }
    })
    .on('pjax:success', function() {
        var i = $("[name='"+input+"']");
        var val = i.val();
        i.focus().val(val);
    });
    
    视图:

    
    
    它第一次工作正常,但在第一次调用后没有触发ajax。您是使用此构造$(document)。on('keyup',…),还是使用此$(filter_selector)。单击(func(){})?我使用了您在回答中提到的方法。由于.on('keyup',filter_selector,function(){也不会有绑定问题..在第一次ajax调用它的非回调成功“pjax:success”后出现了一个问题事件因此提交形式值保持为true。知道原因吗:success event not trigger我已经在一个实时项目的答案中再次检查了我的代码,它工作了。您是否将js代码包装在$(document).ready(function(){});?可能您的控制器或模型中有错误。尝试绑定pjax:error回调并启用错误显示。
    <?php \yii\widgets\Pjax::begin(['id' => 'pjax-id']) ?>
    <?= GridView::widget([
        'id'               => 'grid-id',
        'dataProvider'     => $dataProvider,
        'filterModel'      => $filterModel,
        'columns' => [
            'id',
            'title'
        ]
    ]);?>
    <?php \yii\widgets\Pjax::end(); ?>