RT;第一级
<h:selectOneMenu value="#{DeviceStatBacking.queryDept}" onchange="placeChanged();" styleClass="searchtxt">
<f:selectItem itemLabel="11" itemValue="11"></f:selectItem>
<f:selectItem itemLabel="12" itemValue="12"></f:selectItem>
</h:selectOneMenu>
第二级
<h:selectOneMenu id="tempId" value="#{DeviceStatBacking.queryComp}" styleClass="searchtxt" readonly="false">
<f:selectItem itemLabel="21" itemValue="21"></f:selectItem>
<f:selectItem itemLabel="22" itemValue="22"></f:selectItem>
</h:selectOneMenu>
提交:
<h:commandButton value="查询" action="#{DeviceStatBacking.queryStat}" styleClass="butt" onclick="fuc();"></h:commandButton>
MB的queryStat():
public void queryStat()
{
System.out.println(this.queryComp);
System.out.println(this.queryComp1);
}
JS:
function placeChanged()
{
try
{
var sel1=document.getElementById("query:tempId");
var opt1=document.createElement("option");
opt1.innerHTML="23";
opt1.value="23";
sel1.appendChild(opt1);
}
catch(e)
{
alert(e);
}
}
function fuc()
{
alert(document.getElementById("query:tempId").value);
}触发第一级的onchange事件后新OPTION(value=23)能添加到页面中,选择第二级的原有项(value=21或22)fuc函数和queryStat均正常.只当选择第二级的新项(value=23)时,fuc正常弹出'23',而queryStat无任何输出.
谢谢留言!!!
<h:selectOneMenu value="#{DeviceStatBacking.queryDept}" onchange="placeChanged();" styleClass="searchtxt">
<f:selectItem itemLabel="11" itemValue="11"></f:selectItem>
<f:selectItem itemLabel="12" itemValue="12"></f:selectItem>
</h:selectOneMenu>
第二级
<h:selectOneMenu id="tempId" value="#{DeviceStatBacking.queryComp}" styleClass="searchtxt" readonly="false">
<f:selectItem itemLabel="21" itemValue="21"></f:selectItem>
<f:selectItem itemLabel="22" itemValue="22"></f:selectItem>
</h:selectOneMenu>
提交:
<h:commandButton value="查询" action="#{DeviceStatBacking.queryStat}" styleClass="butt" onclick="fuc();"></h:commandButton>
MB的queryStat():
public void queryStat()
{
System.out.println(this.queryComp);
System.out.println(this.queryComp1);
}
JS:
function placeChanged()
{
try
{
var sel1=document.getElementById("query:tempId");
var opt1=document.createElement("option");
opt1.innerHTML="23";
opt1.value="23";
sel1.appendChild(opt1);
}
catch(e)
{
alert(e);
}
}
function fuc()
{
alert(document.getElementById("query:tempId").value);
}触发第一级的onchange事件后新OPTION(value=23)能添加到页面中,选择第二级的原有项(value=21或22)fuc函数和queryStat均正常.只当选择第二级的新项(value=23)时,fuc正常弹出'23',而queryStat无任何输出.
谢谢留言!!!
解决方案 »
- 品红网页如何编程
- E6如何玩真说武士道烈传
- JSP带两个或多个参数传递的超链接
- 请教大数据量XML存储
- 请问大家如何解决表单提交产生的空指针问题??
- 急,急,急,不知道哪里有问题,求高手进,text文本框可以输出值,而div却输出undefine
- 聊天室问题请教(不是不给分,是没分了,对不起大家了)
- 在线等——如何用TOMCAT发布VAR的网站程序???
- 这是哪错了?
- poi在web中执行较慢
- 如何利用JDAVMail收发Hotmail,由于Hotmail走的是http协议不支持stmp所以学要别的方法实现邮件收发
- sqlserver 列 'dbo.MyUser.ComCode' 在选择列表中无效,因为该列未包含在聚合函数中,并且没有 GROUP BY 子句。
<script language="JavaScript" type="text/JavaScript">
//创建XMLHttpRequest对象
function createXMLHttpRequest() {
if(window.XMLHttpRequest) { //Mozilla 浏览器
XMLHttpReq = new XMLHttpRequest();
}
else if (window.ActiveXObject) { // IE浏览器
try {
XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
}
// 处理返回信息函数
function processResponse() {
if (XMLHttpReq.readyState == 4) { // 判断对象状态
// alert(XMLHttpReq.status);
if (XMLHttpReq.status == 200) { // 信息已经成功返回,开始处理信息
DisplayHot(); } else { //页面不正常
window.alert("您所请求的页面有异常。");
}
}}
function DisplayHot() {
var count = XMLHttpReq.responseText;
var sel = document.getElementById("worth");
sel.options.length=0;
var arrstr = new Array();
arrstr = count.split(",");
//开始构建新的Select.
for(var i=0;i <arrstr.length;i++)
{
sel.options[sel.options.length]=new Option(arrstr[i],arrstr[i]);
}
}
function chkWorth(){
var gameName = document.getElementById("gameName").value;
//alert(gameName);
createXMLHttpRequest();
var url = "AddWorthServlet?gameName="+gameName;
XMLHttpReq.open("GET", url, true);
XMLHttpReq.onreadystatechange = processResponse;//指定响应函数
XMLHttpReq.send(null); // 发送请求
}
</script>
jsp页面
<select id="gameName" name="gameName" size="1" onchange="chkWorth()">
<option ......>游戏 </option>
</select>
<select id="worth" name="worth" size="1">
</select>
servlet
public static String ISOToInnerCode(String str) {
if (str == null)
return null;
try {
str = (new String(str.getBytes("ISO-8859-1"), "gbk")).trim();
} catch (Exception ex) {
}
return str;
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/plain; charset=gb2312");
response.setHeader("Cache-Control","no-cache");
PrintWriter out = response.getWriter();
String gameName = ISOToInnerCode(request.getParameter("gameName").trim());
// System.out.println(gameName);
ManagerDao mDao = new ManagerDao();
String worths = mDao.getWorthByGame(gameName);
if(worths.equals("") | | worths.equals(" ")){
worths = "面额";
}else{
worths = "面额" + "," + worths;
}
out.println(worths);
out.close();
}
我会用JSP+AJAX,但不会用JSF+AJAX.....