2017-01-21 2 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

関連する問題