Всё-таки оказалось что мне это не нужно. Ура!
Длина GET запроса получалась слишком большой из-за бага (или фичи) pjax при ручном вызове pjax.reload — вместо замены значения параметра он заново дописывался в конец URLа. Помогло использование опции «replace: false», которая вообще-то должна и так быть false по умолчанию, и по логике её надо в true переводить, однако ж помогло...
Может кому пригодится следующий код. Это автосабмит для TreeViewInput::widget
$this->registerJs('
$("document").ready(function(){
$("#filter_tree").on("change", function() {
$.pjax.reload("#list", {
method: "GET",
data: {service:$(this).val()},
replace: false})
})
});
');
Где: filter_tree - id виджета, #list - id обновляемого pjax блока, service - GET-параметр в который ставится значение.