- 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不要加引号