2008-11-20 9 views
1

J'ai 2 pages sur l'écran (en fait plus car c'est une sorte d'application Web propriétaire avec quelques images et je ne peux pas comprendre toute la structure)Déplacer le curseur par programmation d'une page vers une autre page en utilisant JavaScript

J'entre les critères de recherche dans une page, j'appuie sur 'Entrée' sur le clavier, la recherche est exécutée et l'autre vue est remplie de données. Il y a un bouton 'Confirmer' sur cette 2ème vue et l'utilisateur doit cliquer dessus.

J'aimerais que l'utilisateur appuie sur «Entrée» sur le clavier et que «Confirmer» soit exécuté.

Si je clique sur un champ de cette 2ème vue et que j'appuie sur 'Entrée', 'Confirmer' est exécuté, il s'agit donc de déplacer le focus de la souris de la première page à l'autre.

Comment pourrais-je atteindre ce par programme?

J'ai essayé ce qui suit

<SCRIPT FOR=window event=onload language="JScript"> 
    var focusField = "<%= controller->component_id %>" + '_' + 'NUMBER'; 
    document.getElementById(focusField).focus(); 
</SCRIPT> 

curseur encore dans le champ de saisie dans la première page.

<SCRIPT FOR=window event=onload language="JScript"> 
    var focusField = "<%= controller->component_id %>" + '_' + 'NUMBER'; 
    alert(document.getElementById(focusField).value); 
    document.getElementById(focusField).focus(); 
</SCRIPT> 

La valeur du champ est affiché si le code passe par là

curseur encore dans le champ de saisie dans la première page

<SCRIPT FOR=window event=onload language="JScript"> 
    var focusField = "<%= controller->component_id %>" + '_' + 'NUMBER'; 
    document.getElementById(focusField).focus(); 
    alert('1'); 
    alert('2'); 
</SCRIPT> 

curseur encore dans le champ de saisie dans la première page

<SCRIPT FOR=window event=onload language="JScript"> 
    var focusField = "<%= controller->component_id %>" + '_' + 'NUMBER'; 
    alert('1'); 
    document.getElementById(focusField).focus(); 
    alert('2'); 
</SCRIPT> 

Et le curseur 'déplacé' le champ d'entrée en quelque sorte 'miraculeusement' et 'Enter' fonctionne sur la 2ème page !!!

Pourquoi est-ce?

Bien sûr, ce n'est pas une solution mais je me demande pourquoi l'utilisation d'alertes (mais 2 pas 1) atteint mon objectif de déplacer le focus de la souris.

Merci

Répondre

1

je trouve un moyen de le faire fonctionner

<SCRIPT FOR=window event=onload language="JScript"> 

function setFocus() 
    { 
    var focusField = "<%= controller->component_id %>" + '_' + 'CUSTOMER_STRUCT.BP_NUMBER'; 
    document.getElementById(focusField).focus(); 
    } 

    window.setTimeout('setFocus()', 40);//1,10,20,30 do not work 

</SCRIPT> 

Toute explication pour cela?

Cela fonctionne sur mon bureau. Se pourrait-il que cela ne fonctionne pas sur d'autres postes de travail (c'est-à-dire que l'intervalle devrait être plus long)?

Questions connexes