我有以下代码: 第一个函数fun()在点击选择时被调用,它完美地运行。 但是第二个函数fun1()在单击提交按钮时调用,但在第二个函数中,不访问URL(ax / setexmsess.jsp)。 如果有人能给我解决方案..非常感谢..
<script>
function fun(){
var e = document.getElementById("s1");
var strUser = e.options[e.selectedIndex].value;
if (typeof XMLHttpRequest != "undefined"){
var xmlHttp= new XMLHttpRequest();
}
else if (window.ActiveXObject){
xmlHttp= new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlHttp==null){
alert("Browser does not support XMLHTTP Request")
return;
}
var url="ax/getqt.jsp";
url +="?sel=" +strUser;
xmlHttp.onreadystatechange = function(){
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
document.getElementById("mydiv").innerHTML=xmlHttp.responseText;
}
}
xmlHttp.open("POST", url, true);
xmlHttp.send(null);
}
function fun1(){
if (typeof XMLHttpRequest != "undefined"){
var xmlHttpf= new XMLHttpRequest();
}
else if (window.ActiveXObject){
xmlHttpf= new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlHttpf==null){
alert("Browser does not support XMLHTTP Request")
return;
}
var url="ax/setexmsess.jsp";
xmlHttpf.onreadystatechange = function(){
if (xmlHttpf.readyState==4 || xmlHttpf.readyState=="complete"){
}
}
xmlHttpf.open("POST", url, true);
xmlHttpf.send(null);
}
</script>
Html代码是这样的:
<select name="s1" id="s1" class="text" onclick="fun();">
<option value="">--Select--</option>
<c:forEach items="${rs.rows}" var="row">
<option value="${row.testid}">${row.testname}</option>
</c:forEach>
</select>
<input type="submit" value="Start" class="button2" onclick="fun1();"/>
问题是,只要我点击提交按钮,我就必须设置会话属性,url中的页面只是用于设置该会话属性..如果您有其他方法,请建议我
还有一件事,函数fun1()正在运行,但它没有调用给定的URL。
答案 0 :(得分:3)
在我看来问题是使用submit
按钮,如果你更改:
<input type="submit" value="Start" class="button2" onclick="fun1();"/>
到
<input type="button" value="Start" class="button2" onclick="fun1();"/>
您的问题可能会得到解决,因为提交按钮具有提交当前表单的默认行为。另一种方法是阻止使用event.preventDefault();
形式onsubmit
事件中的return false;
提交行为,在较旧的浏览器中,您应该event.returnValue
或将false
设置为{{1}} }。