繁体   English   中英

如何从JSP中Javascript的URL传递的参数中重置值

[英]How do I reset the value from the parameter passed by URL from Javascript in JSP

这是我在该网站上遇到的第一个问题,希望我能很好地解释。 我确实发现了相同的问题,但是大多数情况下是在PHP中,但我不太了解(例如, 如何用javascript / jquery替换url参数? )。 这是我的解释:

我在Javascript中有一个功能(在页面testStudentFile.jsp中):

 <script language="javascript"> function onParamChange(){ var thisForm = document.frmParam; var strBranch = thisForm.reqBranch.value; var strFaculty = thisForm.reqFaculty.value; var strCourse = thisForm.reqCourse.value; location.href ="testStudentFile.jsp?reqBranch="+strBranch+"&reqFaculty="+strFaculty+"&reqCourse="+strCourse; } </script> 

哪个从这里获取值(并在同一页面上发布):

 <form name="frmParam" action="testStudentFile.jsp" method="POST"> <tr> <td width="20%"><strong>Branch:</strong></td> <td> <%renderDropDownList2(out, "reqBranch", arrBranch, requestValue.strBranch,"onchange=\\"onParamChange()\\"");%><%=strBranchDesc%> </td> </tr> <tr> <td width="20%"><strong>Faculty:</strong></td> <td> <%renderDropDownList2(out, "reqFaculty", arrFaculty, requestValue.strFaculty,"onchange=\\"onParamChange()\\"");%><%=strFacultyDesc%> </td> </tr> <tr align="left"> <td><strong>Course: </strong></td> <td> <%renderDropDownList2(out, "reqCourse", arrCourse, requestValue.strCourse,"onchange=\\"onParamChange()\\"");%><%=strCourseDesc%> </td> </tr> <tr align="left"> <td>&nbsp;</td><td><strong><%out.print(arrStudent.size() + " students");%></strong> </td> </tr> <tr> <td></td> <td><input name="reqSearch" class="iform" type="submit" value="Search"></td> </tr> </form> 

然后使用SQL查询从调用数据的方法void中检索数据。 查询示例之一:-

  <%! public void populateBranch(JspWriter out, Connection ConnTC, ArrayList arrBranch)throws Exception{ String sqlSelect = " SELECT DISTINCT branch FROM university"+ " WHERE active='Y'"+ " AND branch='PK'"+ " OR branch='ZZ'"; //out.print(sqlSelect); PreparedStatement stmtSelect = ConnTC.prepareStatement(sqlSelect); ResultSet rsSelect = stmtSelect.executeQuery(); while(rsSelect.next()){ String strBranch = getValue(rsSelect.getString("fbrncd")); arrBranch.add(strBranch); } rsSelect.close(); stmtSelect.close(); } %> 

这是我的问题:

当我选择PK作为分支时,它将自动从下拉列表中列出相关的系以及下一个相关的课程,但是当我选择ZZ时,从PK分支中选择的系和课程并没有重置为默认(空),而是可以选择ZZ分支的教师和课程。 每当分支更改时,如何将下拉列表(不带复位按钮)重置为上述Javascript中所述的URL参数值的默认值?

(例)

从-> http://xxx.xxx.xx.x/portal/testApp/request/testStudentFile.jsp?reqBranch = PK&reqFaculty = FAS&reqCourse = AV

到-> http://xxx.xxx.xx.x/portal/testApp/request/testStudentFile.jsp?reqBranch = ZZ&reqFaculty =&reqCourse =

热烈问候<3,

以雅;-)

当分支为ZZ时,您是否要清除strFaculty和strCourse? 然后尝试一下

var thisForm = document.frmParam;

var strBranch = thisForm.reqBranch.value;
var strFaculty = strBranch == 'ZZ' ? '' : thisForm.reqFaculty.value;
var strCourse = strBranch == 'ZZ' ? '' : thisForm.reqCourse.value;

location.href = ....

我希望这对您有用。 谢谢。

这是我的解决方案,以在另一个更改时重置下拉列表。 基于此线程 线程

在一个下拉列表中更改值时,只需调用一个函数:

onchange="reset()"

在重置功能中,选择要更改索引的元素并将其设置为0:

var element = document.getElementById('id');
element.value = 0; // first value, an empty option in this example

更新了JSFiddle

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM