javascript:两个AJAX调用

时间:2014-04-06 09:24:30

标签: javascript ajax

我有以下代码: 第一个函数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。

1 个答案:

答案 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}} }。