P
pikar
Возможно, я ошибаюсь, но не thisEvent, а просто event. Или this.event. И еще, у себя обычно клиентский код вешаю не сюда, аEvents --> Key --> onkeydown --> Client --> Execute Script
if (thisEvent.keyCode==13) {
thisEvent.preventDefault();
var btnm = '#{id:searchButton}';
var btnobj = document.getElementById(btnm);
if (btnobj != null) {
btnobj.click();
}
}
- что за... (не работает)
Error while executing JavaScript action expression
Script interpreter error, line=1, col=22: [ReferenceError] 'thisEvent' not found
свойства - все свойства - события - onkeydown. Уж не помню, почему, от вешания клиентского кода на вкладку события отказался.
И мне не очень понятно все-таки, что должно в итоге получиться. Есть поле, есть кнопка, в поле вводится текст, нажимается кнопка (или энтер в поле) и... что дальше? Какая страница должна открыться, эта же или другая? Поле привязано к sessionScope или requestScope? Просто хотелось бы подробнее задачку понять, чтоб прояснилось, например, зачем это: sessionScope.nameToSearch = requestScope.nameToSearch. Простите за непонятливость, если что Если нужно просто сабмитить, то зачем отлавливать энтер - по нему и так форма отправится на сервер. Если привязать sessionScope.nameToSearch к полю, то зачем код - после отправки на странице в событии типа beforePageLoad (или в поле вычисляемом, например) обрабатываем отправленное значение. Или я все-таки что-то не так понимаю?
Короче, вот у меня такая страничка получилась:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:inputText id="nameToSearch" value="#{viewScope.nameToSearch}"></xp:inputText>
<xp:button value="Поиск" id="button1">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete" immediate="false" save="true"></xp:eventHandler>
</xp:button>
<xp:text escape="true" id="computedField1">
<xp:this.value><![CDATA[#{java script:if (viewScope.nameToSearch==null||viewScope.nameToSearch=='') {
return 'Нет данных для поиска'
}
else {
return 'Можно поискать по значению '+viewScope.nameToSearch
}}]]></xp:this.value>
</xp:text>
</xp:view>