[英]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.