js 提交页面数据时,用ajax验证,但ajax没验证完成,页面js数据已经提交,这个怎么弄?

JavaScript025

js 提交页面数据时,用ajax验证,但ajax没验证完成,页面js数据已经提交,这个怎么弄?,第1张

// 使用 jquery 来完成 ajax 操作,引用 jquery.min.js

// 其中,把提交事件写到 success:function 中就可以了

// 如果需要放在 $.ajax() 外面,则需要定义全局变量,另外,需要设置 async:false,这个属性指的是,执行完 $.ajax() 中的所有内容之后,再往下继续执行 if(yes)

$(function(){

// 设置验证不通过

var yes = false

$.ajax({

type: "POST", contentType: "application/jsoncharset=utf-8",

url: url + params, cache: false, async: false, dataType: "json",

success: function (result) {

if(验证通过){

// $("#FormID").submit()

yes = true

}

}

})

if(yes){

$("#FormID").submit()

}

})

代码没有,给checkbox绑定click事件,if checked,获取当前value,采用ajax异步请求,服务器根据value返回json,前台接收并解析json,然后创建节点,绑定数据,插入到前台

1、打开与服务器的连接(open)

当得到XMLHttpRequest对象后,就可以调用该对象的open()方法打开与服务器的连接了。open()方法的参数如下:

open(method, url, async):

method:请求方式,通常为GET或POST;

url:请求的服务器地址,例如:/ajaxdemo1/AServlet,若为GET请求,还可以在URL后追加参数;

async:这个参数可以不给,默认值为true,表示异步请求;

var xmlHttp = createXMLHttpRequest()

xmlHttp.open("GET", "/ajax_get/?a=1", true) 

2、发送请求

当使用open打开连接后,就可以调用XMLHttpRequest对象的send()方法发送请求了。send()方法的参数为POST请求参数,即对应HTTP协议的请求体内容,若是GET请求,需要在URL后连接参数。

注意:若没有参数,需要给出null为参数!若不给出null为参数,可能会导致FireFox浏览器不能正常发送请求!

xmlHttp.send(null)

3、接收服务器的响应(5个状态,4个过程)

当请求发送出去后,服务器端就开始执行了,但服务器端的响应还没有接收到。接下来我们来接收服务器的响应。

XMLHttpRequest对象有一个onreadystatechange事件,它会在XMLHttpRequest对象的状态发生变化时被调用。下面介绍一下XMLHttpRequest对象的5种状态:

0:初始化未完成状态,只是创建了XMLHttpRequest对象,还未调用open()方法;

1:请求已开始,open()方法已调用,但还没调用send()方法;

2:请求发送完成状态,send()方法已调用;

3:开始读取服务器响应;

4:读取服务器响应结束。