求助jsp中使用js函数的问题!谢谢!

下面是我的jsp文件:<%@pagelanguage="java"import="java.util.*"pageEncoding="gbk"%><%Stringpath... 下面是我的jsp文件:
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>

<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>用户名惟一性检查</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

<script type="text/javascript">
var xmlHttp;

function createXMLHttpRequset(){
if(window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRquest();
}
}

function beginCheck(){
System.out.println("__1__");
var tempLoginName = document.all.loginName.value;
if(tempLoginName == ""){
alert("对不起,请输入注册名!");
return;
}
createXMLHttpRequset();
xmlHttp.onreadystatechange = processor;
xmlHttp.open("GET","CheckUser?loginName="+tempLoginName);
xmlHttp.send(null);
}

function processor(){
var responseContext;
if(xmlHttp.readyState == 4){
if(xmlHttp.status == 200){
responseContext = xmlHttp.responseText;
if(responseContext.indexOf("true") != 1){
alert("恭喜您,该注册名有效!");
}else{
alert("对不起,该注册名已被使用!");
}
}
}
}
</script>

</head>

<body>
<form name="form1" action="CheckUser" method="POST">
<table align="center" border="1">
<tr align="center">
<td>
用户名:
</td>
<td>
<input name="loginName" type="text" id="loginName">
</td>
<td>
<input type="button" name="checkLoginName" value="用户名可用性"
onclick="beginCheck()">
</td>
</tr>
</table>
</form>
</body>
</html>
当我点击button(用户名可用性)时,页面根本没有调用函数:beginCheck()。找了很久,因为我刚涉及ajax,弄不明白了。希望各位大虾帮帮我,感激不尽。
当我不论输入何信息,点击button都不会有反应(没有警告)。我试过跳过js的检查,通过响应得到的boolean值判断过,servlet那块没有错,Tomcat也没有报错,其他都没有问题,问题应该就处在这个JSP中。大家帮帮我,我不太熟。
说明一下,我打印“__1__”是我自己查找问题时候写的,忘记注释了。
展开
 我来答
神煞J
2009-06-20 · TA获得超过211个赞
知道答主
回答量:161
采纳率:0%
帮助的人:117万
展开全部
1. function beginCheck(){
System.out.println("__1__");

把js里面的 System.out.println("__1__"); 改成alert("进入JS");
确认进入 js方法中
谁告诉你可以再 js里写 System.out.println的?

2. xmlHttp.open("GET","CheckUser?loginName="+tempLoginName);
请确定 CheckUser 请求路劲是否 正确
测试 正确的方法 在 CheckUser对应的类的方法
第一行写句
System.out.println("进入后台AJAX类")

以下是我 的例子 注释好了 希望对你有帮助
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<title>第一个AJAX</title>

<script type="text/javascript">
function checkName(value){
//创建XmlHTTPRequest对象
var xmlHttp;
//判断客户端使用的浏览器是什么浏览器
//如果是IE ,使用ActiveXObject
if(window.ActiveXObject)
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
//如果不是IE
else if(window.XMLHttpRequest)
xmlHttp = new XMLHttpRequest();

var url="<%=request.getContextPath()%>/servlet/AjaxServlet?name="+value;
//创建HTTP请求
//第一个参数:请求方法 第二个参数:请求地址 第三个参数:是否使用异步传输
xmlHttp.open("POST",url,true);
//发送HTTP请求
xmlHttp.send(null);

//指定当readyState属性改变时的事件处理句柄
xmlHttp.onreadystatechange=function(){
//当返回XMLHTTP请求的当前状态等于4 服务器数据发送完成
if(xmlHttp.readystate==4){
//如果当前请求的http成功
if(xmlHttp.status==200){
var res= xmlHttp.responseText;
var sp1=document.getElementById("sp1");
if(res=="no"){
sp1.innerHTML="改用户名以存在";
sp1.style.color="red";
document.getElementById("name").focus();
}else{
sp1.innerHTML="该用户名可以用";
}

}
}
}

}
</script>
</head>
<body>
<input type="text" name="name" onblur="checkName(this.value)" ><span id="sp1"></span>
<input type="text" name="pwd" >

</body>
</html>
xiaofang339
2009-06-20
知道答主
回答量:16
采纳率:0%
帮助的人:0
展开全部
<input type="button" name="checkLoginName" value="用户名可用性"
onclick="beginCheck()">

onclick="beginCheck()">改成
onclick="return beginCheck()">
试试!其他都没什么问题
下面有个我经常用的列子不会有什么问题
================分割线====================
//定义一个变量用于存放XMLHttpRequest对象
var xmlHttp;
//该函数用于创建一个XMLHttpRequest对象
function createXMLHttpRequest(){
if(window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}
}
//这是一个启动Ajax异步通信的方法
function beginStockInCodeUnique(){
//获取某个编号
var code=document.all.code.value;
//创建一个XMLHttpRequest对象
createXMLHttpRequest();
//将状态触发器绑定到一个函数
xmlHttp.onreadystatechange = processor;
//通过get方法建立服务器的调用
mydate=new Date();
mydate=mydate.getSeconds();
xmlHttp.open("GET","SEVERLET方法的路径?code="+code+"&&mydate"+mydate);
//发送请求
xmlHttp.send(null);
}
//这是一个用来处理状态改变的函数
function processor(){
//定义一个变量用于存放从服务器返回的响应结果
var responseResult;
if(xmlHttp.readyState==4){//如果响应完成
if(xmlHttp.status==200){//如果返回成功
//取出服务器返回的内容
responseResult=xmlHttp.responseText;
//如果注册名检查有效
if(responseResult!="ok"){
document.all.result.innerText="编号已经存在请重新输入"
document.all.result.style.display="";
}
else{
document.all.result.innerText="" document.all.result.style.display="none";
}
}
}
}

==============分割线==================
下面是SERVELET中的方法
response.setContentType("text/html");
PrintWriter out;
out = response.getWriter();
String code=request.getParameter("code");
common com=new common();
String sql="select code from 表名 where code='"+code+"'";
boolean bol=com.queryCodeExit(code, sql);
if(!bol){
out.print("ok");
}
================分割线==============
大致的AJARX验证重复的方法都是这样的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式