2017-01-21 49 views
0

当我使用ajax提交表单时,触发提交的元素获得焦点。我不想要这种行为,如果我使用无限滚动,并且我想让用户保持在页面底部。我该如何解决?如何防止Drupal专注于触发ajax提交的元素?

焦点返回到该元素:

 $form['submit'] = [ 
     '#type' => 'submit', 
     '#value' => $this->t('Search'), 
     '#attributes' => [ 
      'class' => [ 
       'btn', 
       'btn-md', 
       'btn-primary', 
       'use-ajax-submit' 
      ] 
     ], 
     '#ajax' => [ 
      'wrapper' => $wrapper, 
     ] 
    ]; 

回答

0

为了解决这个问题,我添加下列的变化:

$form['submit'] = [ 
     '#type' => 'submit', 
     '#value' => $this->t('Search'), 
     '#attributes' => [ 
      'class' => [ 
       'btn', 
       'btn-md', 
       'btn-primary', 
       'use-ajax-submit' 
      ] 
     ], 
     '#ajax' => [ 
      'wrapper' => $wrapper, 
      'disable-refocus' => true 
     ] 
    ]; 

禁用-再聚焦标志可防止自动再聚焦。

参见:Focus state bug on text field AJAX calls