J'utilise la boîte de dialogue modale jQuery UI et je la remplis avec certains champs de formulaire. En raison de ce bogue: http://bugs.jqueryui.com/ticket/4731 , la première entrée gagne le focus lorsque la boîte de dialogue s'ouvre. Pour contourner cela, j'essaie de brouiller l'entrée affectée lorsque la boîte de dialogue est ouverte.
Le problème est qu'il existe d'autres fonctionnalités qui sont appelées pour cette entrée sur une .blur()
, et que je ne veux pas tirer cette fonctionnalité pour cela.
Donc, j'essaie d'utiliser .focusout()
et .trigger('focusout')
pour obtenir le même effet, mais sans résultat.
Faire l'une de ces actions:
$('#input-id').focusout();
$('#input-id').trigger('focusout');
ne provoque pas réellement la perte de focus de l'entrée, où l'utilisation de .blur()
est réussie. Suis-je en train de manquer quelque chose, ou existe-t-il une autre façon d'accomplir ce dont j'ai besoin?
Ma suggestion serait de définir le focus sur un autre élément dans la boîte de dialogue lorsqu'il est ouvert au lieu de définir la zone de texte sur flou. Cela devrait surmonter votre problème.
J'espère que cela t'aides!!
Si vous avez envie d'un hack javascript rapide, vous pouvez utiliser:
$(':focus').blur();
La mise au point n'entraîne pas la perte de la focalisation de l'élément. Au lieu de cela, la mise au point est déclenchée lorsqu'un élément perd le focus. Découvrez http://api.jquery.com/focusout/
J'ai utilisé cela comme solution de contournement:
$('body').focus();
J'ai utilisé cela sans avoir besoin d'exécuter javascript dans le pilote Selenium:
field.send_keys :tab