日期:2014-05-17  浏览次数:20731 次

明明有这个方法,为什么还报错呢
JScript code

<script type="text/javascript">
    var xmlHttpReq = false;
    //创建XMLHttpRequest对象
    function createXMLHttpRequest() {
        if (window.XMLHttpRequest) {//非IE浏览器
            XMLHttpReq = new XMLHttpRequest();
        } else if (window.ActiveXobject) {//IE浏览器
            try {
                XMLHttpReq = new ActiveXobject("Maxml2.XMLHTTP");
            } catch (e) {
                try {
                    XMLHttpReq = new ActiveXobject("Microsoft.XMLHTTP");
                } catch (e) {

                }
            }
        }

    }
    function sendRequest(url) {
        createXMLHttpRequest();
        XMLHttpReq.open("GET", "url", true);
        XMLHttpReq.onreadyStatechange = processResponse;//指定响应函数
        XMLHttpReq.send(null);
    }
    function processResponse() {
        if (XMLHttpReq.readyState == 4) {
            if (XMLHttpReq.status == 200) {
                var res = XMLHttpReq.responseXML.getElementsByTagName("res")[0].firstChild.data;
                alert(res);
            } else {
                alert("您所请求的页面有异常");
            }
        }
    }
    function userCheck() {
        var username = document.myform.username.value;
        var password = document.myform.password.value;
        if (username == "") {
            alert("用户名不能为空!");
            document.myform.username.focus();
            return false;
        }
        else {
            sendRequest('login?username=' + username + '&password=' + password);
        }
    }
</script>
<body vlink="#006666" link="#003366" bgcolor="#e0f0f8">
    <center>
        <h1>AJAX用户登录</h1>
        <hr>
        <form action="LoginServlet" method="post" name="myform">
            用户名:<input type="text" name="username">
            <p>
                密码:<input type="password" name="password">
            <p>
            <hr>
            <input type="submit" value="提交" onclick="return userCheck();">[color=#FF0000]<!--明明有这个方法,为什么报错呢?Multiple annotations found at this line:
    - Cannot return from outside a function or method.-->[/color]
             <input    type="reset" value="重置">
        </form>
    </center>
</body>



程序倒是可以运行,我就是想问问到底是怎么一会儿?

------解决方案--------------------
没有问题的,是Eclipse报的错吗,Eclipse的js编辑器不是很好,提示不多,有时也会乱报错
------解决方案--------------------
应该是 <form action="LoginServlet" method="post" name="myform" onsubmit="return userCheck();">

submit类型按钮本身就代表了提交。。为什么还要加一个onclick事件去提交?


------解决方案--------------------
onlick这事一个事件,这个事件触发一个函数。所以js的编译器会把return userCheck();看正一个整体,你的代码中是有userCheck这个函数 但是没有return userCheck这个函数,所以报错了。
------解决方案--------------------
XMLHttpReq.open("GET", url, true);
表示此url不要加引号