Question

Remarques sur l'environnement. JSF 1.1 en utilisant la bibliothèque de composants Infragistics

J'utilise les éléments suivants Javascript pour tentative pour éviter une pression de touche « Entrée » de soumettre un formulaire.

function disableEnterKey(e){     
     var key;      
     if(window.event)
          key = window.event.keyCode;
     else
          key = e.which;
     return (key != 13);
}

Ensuite, dans le JSP, je:

<h:inputText id="an_id" value="#{bean.value}" 
             onkeypress="return disableEnterKey(event);" />

Cela semble fonctionner parfaitement dans Firefox et Google Chrome. Je ne comprends pas pourquoi il ne fonctionne pas avec IE8. Je suis perplexe.

Je l'ai essayé d'utiliser un <t:inputText/> Tomahawk, mais cela ne fait pas de différence.

Je l'ai essayé de mettre quelque chose dans le gestionnaire de onkeypress pour la <h:form> mère et / ou l'élément <body>, mais cela ne semble pas aider non plus. Et, je l'ai essayé d'utiliser le onkeydown, mais ne l'ai pas vu une différence avec ça, soit.

Le diagnostic différentiel que je pense que je suis venu avec est que peut avoir quelque chose à voir avec la bibliothèque Infragistics. IG n'ajouter un peu de script aux pages, mais je ne suis pas solide sur la façon de déboguer Javascript efficacement avec IE8. Ce serait pas un problème à fourrer avec Firebug sur FF, mais je suis un peu perplexe.

Quelqu'un at-il une expérience similaire? Vous connaissez une solution?

Était-ce utile?

La solution

Je sais qu'il est peu en retard, mais c'est pour les autres qui essaient de faire cette chose. Ce problème se produit si votre page ne contient qu'un seul h:inputText. Ajouter un autre comme texte caché ce problème de se résout.

Example
<h:panelGroup>
    <h:inputText id="test1" style="display: none;" styleClass="alignleft" value="" />
</h:panelGroup>

Autres conseils

chose bizarre, parce que ça marche pour moi dans IE8 et FF seulement de cette façon:

var key;
if(window.event)
{
    //IE
    key = window.event.keyCode;
}
else
{
    //FF
    key = e.keyCode;
}

Ce fut la seule façon de résoudre ce!

<h:inputText id="test1" style="display: none;" styleClass="alignleft" value="" />
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top