2012-06-07 3 views
1

У меня есть промежуток из двух компонентов, поля поиска и командной кнопки. Командная кнопка предназначена для задачи разделителя. Поэтому, когда поле ввода сфокусировано и пользователь попадает в него, он должен перенаправляться на страницу результатов поиска, и не следует вызывать командную кнопку.a4j: commandButton вызывается при нажатии ввода

<s:span> 
    <h:inputText value="#{search.input}" onkeypress="performSearch(event)"/> 
    <a4j:commandButton image="icon.jpg" action="#{some action}" ajaxSingle="true"> 
    </a4j:commandButton> 
</s:span> 

performSearch - это функция javascript, которая вызывает фактический поиск по Enter.

Теперь действие commandButton активируется при попадании в поле ввода. Любая идея исправить это?

ответ

0

onkeypress должен возвращать false при нажатии клавиши ввода. Это заблокирует действие по умолчанию ключа ввода.

Таким образом, так,

onkeypress="return performSearch(event)" 

с чем-то вроде

function performSearch(event) { 
    // ... 

    if (notEnterPressed) { 
     return true; 
    } 

    // Perform search. 
    // ... 

    return false; 
} 
+0

Спасибо! оно работает. – eelpa

+0

Привет, я пробовал его на Firefox 10 и IE9, и он работает. Но в ранней версии FF, как FF3 и IE7, проблема остается. Любая идея исправить это? – eelpa

+0

Это относится к атрибуту 'onkeypress'. Вместо этого используйте 'onkeydown' (или' onkeyup'), если вы хотите также поддерживать старые браузеры. – BalusC

Смежные вопросы