[英]Onchange in Struts2 textfield
我想根據我在S2 textfiled中輸入的字符串將所有記錄從DB傳遞到JSP。 當只輸入textfiled時,我想將所有這些記錄作為JSP中的表獲得。
例如:
在文本文件中,當我鍵入“ a”時,我想顯示所有與鍵入字符“ a”匹配的記錄。 假設在我的數據庫中,我有一些值,其中“名稱”列為“ abc”,“ def”,“ bac”,“ dea”等。 然后,我想從數據庫中獲取列值為“ 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);
});
嘗試onkeyup
,執行密鑰輸入時它將調用JavaScript:
<s:textfield label="Search" name="keyword" id="keyword" onkeyup="search()"/>
function myFunction() { var x = document.getElementById("searchText").value; alert(x); }
<input type="text" id="searchText" onkeyup="myFunction()">
您正在談論的窗口小部件稱為自動完成程序(即,猜猜是什么,一個由鍵盤事件觸發的具有自動完成功能的文本字段)。
您可以使用javascript小部件(例如jQuery autocompleter )輕松實現這一目標,在Struts2中,您還可以選擇struts2-jquery-plugin的Autompleter 。
在操作中,返回一個List或一個數組:
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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.