Есть facelet terminology.xhtml
<div class="termins col-lg-6">
<f:view>
<h:form id="form">
<h:inputText value="#{textContentController.searchString}" id="search-input" />
</h:form>
</f:view>
<div class="termin-panel">
<ui:repeat var="termin" value="#{textContentController.termins}">
<div>
<a href="terminology.jsf?id=#{termin.id}">#{termin.name}</a>
</div><br/>
</ui:repeat>
</div>
</div>
<div>
#{textContentController.terminDescription}
</div>
<h:outputScript library="js" name="main.js"/>
Есть скрипт main.js
$(function ()
{
$('#form').children().keyup(function () {
$.post('terminology.jsf', function (data)
{
console.log($(data).find('.termin-panel').html());
$('.termin-panel').empty();
$('.termin-panel').html($(data).find('.termin-panel').html());
});
});
});
При отправке формы в блок .termin-panel загружаются данные из результата с БД в зависимости от того, что было введено в h:inputText. Т.е. осуществляется поиск. Вопрос: как правильно организовать AJAX-загрузку данных при вводе в h:inputText? Почему-то скрипт не не получает новых данных, загружаются те же данные из страницы.
JSF работает не так. На JSF надо делать как-то так
<div class="termins col-lg-6">
<h:form id="form">
<h:inputText value="#{textContentController.searchString}" id="search-input">
<f:ajax event="keyup" render=":searchResult"/>
</h:inputText
</h:form>
<h:panelGroup id="searchResult" layout="block" styleClass="termin-panel">
<ui:repeat var="termin" value="#{textContentController.termins}">
<div>
<a href="terminology.jsf?id=#{termin.id}">#{termin.name}</a>
</div><br/>
</ui:repeat>
</h:panelGroup>
</div>
f:ajax
- стандартный тэг для отправки формы на сервер при возникновении указанного события с помощью ajax (неожиданно так). Его атрибут render
перечисляет id компонентов, которые надо обновить.
Как видно то, что Вы пытаетесь изобразить своим скриптом, уже встроено в JSF, только правильно.
А по Вашему скрипту что-то не понятно. Он же не отправляет на сервер ничего? Просто POST запрос без каких-либо параметров? Что сервер должен искать, если ему не поступает строка поиска?
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Пытаюсь подключить css файл в webpack 2Для этого устанавливаю "css-loader","file-loader","less-loader","sass-loader","style-loader", "extract-text-webpack-plugin","url-loader"; создаю отдельный...