我正在使用primefaces的自動完成組件。現在,您要添加幾個字符並相應地搜索名稱。現在我遇到的麻煩是「輸入」按鈕(在鍵盤上)...因爲我想讓輸入功能正常工作,即使您正在搜索自動填充,您仍然可以按下它並繼續獲取更大的列表。現在,這是通過一個轉到Webflow並重定向到另一個頁面的按鈕完成的。停止ajax請求而不知道哪個
現在我遇到的麻煩是,如果自動完成開始搜索,它會啓動一個Ajax請求,如果我點擊輸入,它將啓動另一個請求來做重定向。但是這裏有一個問題:第一個請求仍然是活動的,如果它在我的重定向完成之前返回成功,它就會中止重定向,併爲我提供頁面開始的地方。
現在最大的問題是:如何停止對我一無所知的第一個請求? Blackbox明智我不太瞭解這個請求,除非它非常煩人。我無法通過JavaScript傳遞它,因爲自動完成功能只有在請求之前加載的on start啓動函數,而在請求之後加載完成後才啓動。
編輯:這裏是我的情況下,使用的代碼,你需要了解:
XHTML和JavaScript:
<p:autoComplete value="#{simpleSearchBean.searchString}" completeMethod="# {simpleSearchBean.completeUser}"
var="user" itemLabel="#{user}" itemValue="#{user}" forceSelection="false"
minQueryLength="3" maxResults="10" name="search_block_form" id="edit-search-block-form-1" size="30" queryDelay="500" style="float:left;">
<p:ajax event="itemSelect" oncomplete="autoClickSearchButton()" update="@all"/>
</p:autoComplete>
<p:commandButton action="simpleUserSearch" title="#{msgs_common['common.search']}" name="op" id="edit-submit" image="ui-icon ui-icon-search" style="float:left;"/>
<script type="text/javascript">
function autoClickSearchButton(){
jQuery('#search-block-form\\:edit-submit').click();
}
jQuery('#search-block-form\\:edit-search-block-form-1').keyup(function(event){
if(event.keyCode == 13){
jQuery('#search-block-form\\:edit-submit').click();
}
});
</script>
這裏是一個Webflow片:
<end-state id="simpleUserSearch" view="flowRedirect:user?searchString=#{simpleSearchBean.searchString}"/>
<global-transitions>
<transition on="simpleUserSearch" to="simpleUserSearch" validate="false"/>
</global-transitions>
這將工作,如果我真的寫Ajax電話......但我不是。這是primefaces,使我的請求...所以我不能讓它變量 – Lyrion
這是真的,這個例子只會工作,如果你寫Ajax調用。 – Alex