Предотвращение Enter-ключа JavaScript не работает для JSF 1.1 в IE
-
10-10-2019 - |
Вопрос
Примечания по среде: JSF 1.1 с использованием библиотеки компонентов инфрагистики.
Я использую следующий JavaScript, чтобы пытаться Чтобы предотвратить подачу клавиши «ввести», отправить форму.
function disableEnterKey(e){
var key;
if(window.event)
key = window.event.keyCode;
else
key = e.which;
return (key != 13);
}
Затем в JSP у меня есть:
<h:inputText id="an_id" value="#{bean.value}"
onkeypress="return disableEnterKey(event);" />
Похоже, что это безупречно работает в Firefox и Google Chrome. Я не понимаю, почему это не работает с IE8. Я озадачен.
Я пытался использовать томагавк <t:inputText/>
, но это не имеет значения.
Я пытался что -то поставить в onkeypress
обработчик для родителей <h:form>
и/или <body>
Элемент, но это, похоже, тоже не помогает. И я попытался использовать onkeydown
, но тоже не видел разницы в этом.
Дифференциальный диагноз, который, я думаю, я придумал, это то, что он май Имейте какое -то отношение к библиотеке инфрагистики. IG действительно добавляет немало сценариев на страницы, но я не солид к тому, как эффективно отладить JavaScript с IE8. Это не было бы проблемой, чтобы пройтись с Firebug на FF, но я немного озадачен.
У кого -нибудь есть похожий опыт? Знаете о исправлении?
Решение
Я знаю, что это немного поздно, но это для других, кто пытается сделать это. Эта проблема возникает, если ваша страница содержит только одну h:inputText
Анкет Добавьте еще один, как скрытый текст, это решает проблему.
Example
<h:panelGroup>
<h:inputText id="test1" style="display: none;" styleClass="alignleft" value="" />
</h:panelGroup>
Другие советы
странная вещь, потому что это работает для меня в IE8 и в FF только таким образом:
var key;
if(window.event)
{
//IE
key = window.event.keyCode;
}
else
{
//FF
key = e.keyCode;
}
Это был единственный способ решить это!
<h:inputText id="test1" style="display: none;" styleClass="alignleft" value="" />