PJAX в Yii2 и фокусировка поля?

Доброго времени суток. Помогите, пожалуйста побороть проблему. Есть код:

<?php echo Html::beginForm(); ?>
        <div class = "form-horizontal" role = "form" id = "form_message">

            <div class = "input-group">																				
                <?php echo Html::activeTextInput($form_model, 'message', ['class' => 'form-control', 'value'=>'', 'autofocus'=>true]); ?>
                <?php echo Html::activeHiddenInput($form_model, 'group_id', ['value'=>$group_model->group_id]); ?>
                <?php echo Html::activeHiddenInput($form_model, 'to_user', ['value'=>Yii::$app->user->id == $group_model->user_to ? $group_model->user_from : $group_model->user_to]); ?>
                <span class="input-group-btn">
                    <?php echo Html::submitButton('Отправить', ['class' => 'btn btn-default']); ?>
                </span>																																																																																						
            </div>
        </div>
        <?php echo Html::endForm(); ?>
        <?php echo Html::error($form_model, 'message'); ?>


<?php
        yii\widgets\Pjax::begin(['options' => ['id'=>123]]);
        echo ListView::widget([
            'dataProvider' => $dataProvider,
            'itemView' => '_message',
            'layout' => "{items}\n{pager}"
        ]);
        yii\widgets\Pjax::end();
        ?>

И
function updateMessage(){
        $.pjax.reload({container: '#123'});
    }

    $(document).ready(function(){
        setInterval(updateMessage, 3000);
    });

Но беда в том, что я думал, что PJAX обновляет только определенный кусочек, а всё остальное остаётся нетронутым, однако фокус у формы теряется. Подскажите, пожалуйста, как сделать так, чтобы ListView обновлялся, всё остальное оставалось нетронутым (в том числе и фокус формы). Пробовал после успешного обновления делать фокусировку с помощью JS, но беда в том, что сайт ещё и для мобильника рассчитан, и постоянно-появляющаяся клавиатура пользователю думаю не очень понравится.
  • Вопрос задан
  • 3549 просмотров
Пригласить эксперта
Ответы на вопрос 1
sanchezzzhak
@sanchezzzhak
Ля ля ля...
в HTML нельзя задать атрибут id=123 JS не найдет этот элемент используйте например такой 'a123'
ps фокусировку после обновление части страницы можно решить с помощью событий
$js=<<<JSCODE
$('#a123).on('pjax:complete', function() {
 // ваш код 
});
JSCODE;
?>
<?php $this->registerJS($js);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы