OnSubmit中的Ajax判断
今天在测试页面时,因为有一个radio是要默认checked,但是它要触发一个onclick事件,现在checked以后,把该事件放到onsubmit中,发现onsubmit第一次不触发该ajax,上网查阅资料后得出:
在ajax执行时,async默认的设置值为true,这种情况为异步方式,就是说当ajax发送请求后,在等待server端返回的这个过程中,前台会继续 执行ajax块后面的脚本,直到server端返回正确的结果才会去执行success,也就是说这时候执行的是两个线程,ajax块发出请求后一个线程 和ajax块后面的脚本(另一个线程)。
原代码
$.ajax({
type: "POST", //http请求方式
url: "/member_book/checkbalance",//发送给服务器的url
data: {"memberphone": memberphone, "payment": payment}, //发送给服务器的参数
dataType: "jason", //告诉JQUERY返回的数据格式(注意此处数据格式一定要与提交的controller返回的数据格式一致,不然不会调用回调函数complete)
complete: function (data) {
result = data.responseText;
if (result != "false" && payment != "" ) {
// 购买成功,把提示信息标记为“1”
message.innerText="1"
}
修改后:
要把异步方式改成同步方式
$.ajax({
type: "POST", //http请求方式
async:false, //设置同步方式,非异步!
url: "/member_book/checkbalance",//发送给服务器的url
data: {"memberphone": memberphone, "payment": payment}, //发送给服务器的参数
dataType: "jason", //告诉JQUERY返回的数据格式(注意此处数据格式一定要与提交的controller返回的数据格式一致,不然不会调用回调函数complete)
complete: function (data) {
result = data.responseText;
if (result != "false" && payment != "" ) {
// 购买成功,把提示信息标记为“1”
message.innerText="1"
}