最近在学习ajax的运用,遇到了一个问题。
之前用ajax往后台传值并取回后台的返回值,运行起来没有问题。之后我想在前端假如一个提示框,数据改为表单传递,然后再想用ajax取返回值就不能实现提示信息(“密码修改成功”和“账号与原密码不匹配,请重新输入!”)了。代码如下
<head>
<script>
function validateForm(){
var x=document.forms["myForm"]["Username"].value;
var p=document.forms["myForm"]["Password"].value;
var c=document.forms["myForm"]["ChangePass"].value;
var a=document.forms["myForm"]["NewPass"].value;
if (x==null || x==""){
alert("姓必须填写!");
return false;
}
if (p==null || p==""){
alert("密码必须写!");
return false;
}
if (c==null || c==""){
alert("重置密码必须写!");
return false;
}
if (a==null || a==""){
alert("确认密码必须写!");
return false;
}
if (c != a){
alert("确认密码与重置密码不一致!");
return false;
}
$.ajax({
async:false,
success:function(data){
if(data == 1){
alert("密码修改成功!");
}else if(data == 0){
alert("账号与原密码不匹配,请重新输入!");
}
},
error : function() {
alert("网络故障!");
}
});
}
</script>
</head>
<body>
<form name="myForm" action="ChangeServlet" onsubmit="return validateForm()" method="post">
<table>
<tr>
<th>姓名: </th>
<td><input type="text" name="Username"></td>
</tr>
<tr>
<th>密码: </th>
<td><input type="password" name="Password"></td>
</tr>
<tr>
<th>修改密码:</th>
<td><input type="password" name="ChangePass"></td>
</tr>
<tr>
<th>确认密码:</th>
<td><input type="password" name="NewPass"></td>
</tr>
<tr>
<td><input type="submit" value="提交"></td>
</tr>
</table>
</form>
后台部分代码传递返回值的代码为
PrintWriter out = response.getWriter();
String sql = "select * from LoginUser where UserName = '"+username+"' and LoginPwd = '"+pasword+"'";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
if(rs.next()){
String isExit = "update LoginUser set LoginPwd = ? where UserName = '"+username+"'";
PreparedStatement ps2 = conn.prepareStatement(isExit);
ps2.setString(1,changepass);
ps2.executeUpdate();
ps2.close();
conn.close();
out.println("1");
}else{
out.println("0");
}
之前也试过用ajax传值,但是用ajax传值最开始的判断提示框不能显示(“密码必须写”等等)想问问应该怎么改?