在使用jQuery调用ajax向后台发送数据的时候
如果我们的事件发生的标记是点击了submit按钮
或许会发生后台无法接受到传递的form表单的情况
这是因为在web中点击submit按钮时
会触动submit中的一个固定方法
其效果就是通过form的action传递表单刷新页面
当然这个传递并不是通过ajax来实现的
可以理解为是使用jsp来实现的
而我们使用jQuery调用ajax传递form表单数据的过程是在点击了submit按钮之后的
在传递之前我们的页面就会被刷新
我们可以重写这个固定方法
使其不通过action来传递form表单数据
当然也可以通过将submit按钮改为button亦或者其他元素来实现
以此来绕开submit
示例代码:
<input value="注册" id="user_register_button" class="button2" type="button" onclick="ajax_user_register()" />
function ajax_user_register() {
var flag;
// document.write("<script language=javascript src='check-username.js'></script>");
var username = document.getElementById("user_register_username").value;
// flag = check_username(username);
// if(flag = false) {}
// document.write("<script language=javascript src='check-contact.js'></script>”);
var contact = document.getElementById("user_register_contact").value;
// flag = check_contact(contact);
// if(flag = false) {
//
// } else
if(contact.indexOf('@') > 0) {
var mobilephone = 'null';
var email = contact;
} else {
var mobilephone = contact;
var email = 'null';
}
// document.write("<script language=javascript src='check-password.js'></script>”);
var password = document.getElementById("user_register_password").value;
// var ensurepassword = $("#user_register_ensurepassword");
// if(flag = false) {}
$.ajax({
url: "../MedicatedDietHallServlet", //要请求的服务器url
data: {
username: username,
email: email,
mobilephone: mobilephone,
password: password,
way: "user_register"
},
async: true,
cache: false,
type: "GET",
dataType: "json",
success: function(result) {
if(result) {
location.reload(true);
} else {
alert("你的用户名已被注册");
}
},
erroe: function(){
alert("连接服务器或返回数据失败")
}
})
}