Yii2 网格视图过滤与日期范围选择器不会应用于输入更改



我已经将datePeriodPicker应用于Yii2 gridview过滤器行的输入。它可以工作,但不能在插入值后立即应用。您必须再次单击输入并按"Enter"。其他领域也可以。有什么方法可以让它像其他输入一样适用吗?

下面是我使用的脚本:
var 
    dateInput = $("[name='RequestSearch[request_date]']" ),
    configObject = {
        autoClose: true,
        language:'ru',
        separator: '/',
        showShortcuts : true,
        shortcuts: {
            'next-days': [3,5,7],
            'next': ['week','month','year']
        },
        startOfWeek: 'monday',
    };
dateInput.dateRangePicker(configObject);

编辑1

RequestSearch.php。dateRangePicker插入像"2015-01-05/2015-05-09"这样的值,所以我必须创建一个处理程序,将值分为$start_date和$end_date。

    public function rules()
    {
        return [
            [['id', 'KP_id', 'minimal_payment', 'mover_company_id', 'manager_id', 'workers_number', 'workhours', 'payment_additional', 'payment_car', 'payment_sum'], 'integer'],
            [['request_date', 'payment_type', 'request', 'request_time', 'quantity', 'request_type', 'address', 'status', 'customer_id', 'comment',], 'safe'],
        ];
    }
 $query->andFilterWhere([
        'id' => $this->id,
        ...
    ]);
    if ( ! is_null($this->request_date) && strpos($this->request_date, '/') !== false ) { 
        list($start_date, $end_date) = explode('/', $this->request_date);
        $query->andFilterWhere(['between', 'request_date', $start_date, $end_date]);
        $this->request_date = null;
    } else {
        $query->andFilterWhere(['request_date' => $this->request_date,]);
    }

看起来像我使用的datepicker插件使用val()插入输入值或类似的东西,不会触发'更改'事件,这是需要适当的网格视图过滤。为输入添加了.trigger('change'),现在一切正常。使用我使用的插件,下面是工作的脚本:

var dateInput = $("[name='RequestSearch[request_date]']");
dateInput.dateRangePicker();
dateInput.bind('datepicker-closed', function(){
    dateInput.trigger('change');
})

相关内容

  • 没有找到相关文章

最新更新