Я только что заработал ... вот мой шаблон:
<lift:surround with="default" at="content">
<lift:searchSnippet.search>
<s:query/>
<s:submit/>
</lift:searchSnippet.search>
</lift:surround>
И мой фрагмент:
class SearchSnippet extends Logger {
val ns = "s"
def search(in: NodeSeq) : NodeSeq = {
// save the url of the original page request
val url = S.uriAndQueryString.openOr("")
var query = ""
def submit : JsCmd = {
JsRaw("window.location.href = '" + url + "#" + query + "'")
}
SHtml.ajaxForm({
bind(ns, in,
"query" -> SHtml.text(query, { q =>
query = q
}),
"submit" -> (SHtml.submit("Search", () => {}) ++ SHtml.hidden(submit _)))
})
}
}
Хитрость заключается в том, чтобы сохранить URL-адрес, когда фрагмент первоначально отображается так, чтобывы не получаете ajax_request / ... uri, из которого отправляется форма ajax.