2015-06-10 75 views
0

我想根據字符串獲取從DB到JSP的所有記錄,我在S2 textfiled中輸入的內容。在輸入文本文件的時候,我只想把所有的記錄都作爲JSP中的一張表來使用。Struts2中的Onchange textfield

例:

在textfiled,當我輸入「一」,然後我要顯示與輸入字符「a」匹配的所有記錄。假設在我的數據庫中,我有一些列'name'作爲'abc','def','bac','dea'等值。然後,我想從DB獲取列值爲'abc','bac'和'dea'的所有行。 它非常像HTML中的onchange事件。在這裏,我可以查詢'從表名中選擇名稱,其中名稱如%a%'。

在JSP

所以,

No  Name  Address 
    ------------------------- 
    1  abc  addrs1 
    2  bac  addr2 
    3  dea  addr3 

,而我試圖與

<s:textfield label="Search" name="keyword" id="keyword" onchange="search()"/> 

它沒有工作。

雖然我

<s:textfield label="Search" name="keyword" id="keyword" onkeypress="search()"/> 

它也試圖精確地不靈。這裏onkeypress事件機制工作。輸入'ab'後,只有值'a'將被髮送到操作類。好。有沒有其他的方式來做到這一點。

$.getJSON('/test/giveMeJsonData.action ',{cartId: cartId},function(json){ 
    itemsHtml = "<table>"; 
    for (i in json.items) { 
     itemsHtml += "<tr>"; 
     itemsHtml += "<td>" + json.items[i].id + "</td>"; 
     itemsHtml += "<td>" + json.items[i].name + "</td>"; 
     itemsHtml += "<td>" + json.items[i].address + "</td>"; 
     itemsHtml += "</tr>"; 
    } 
    itemsHtml += "</table>"; 
    $('#cartItems').html(itemsHtml); 
}); 

回答

3

嘗試onkeyup,它會調用JavaScript在執行關鍵了:

<s:textfield label="Search" name="keyword" id="keyword" onkeyup="search()"/> 

JS Bin demo


function myFunction() { 
 
    var x = document.getElementById("searchText").value; 
 
    alert(x); 
 
}
<input type="text" id="searchText" onkeyup="myFunction()">

+0

謝謝。現在它正在工作。 – Satya

0

你正在討論的小部件叫做autocompleter(也就是猜猜是什麼,一個帶鍵盤事件觸發自動補全的文本字段)。

您可以使用javascript小部件輕鬆實現此操作(例如,jQuery autocompleter),而在Struts2中,您也可以選擇struts2-jquery-plugin's Autompleter

在行動,返回一個列表或數組:

public String[] getMyList() { 
    return myList; 
} 

在JSP中,使用這樣的:

<%@ taglib prefix="s" uri="/struts-tags"%> 
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%> 
<html> 
    <head> 
    <sj:head jqueryui="true"/> 
    </head> 
    <body> 
    <sj:autocompleter list="%{myList}"/> 
    </body> 
</html> 
+0

對不起,我的問題是不同的。我知道autocompleter。 – Satya

+1

你正在重新發明輪子,幾乎從不是件好事 –

+0

根本不是我想的。如果我輸入「a」,使用自動完成功能,以字母「a」開始的單詞將作爲暗示出現。但是,我想不僅要以字母的中間或末尾開始字母。這可能與autocompleter。 – Satya