1:使用submit提交:

 onSubmit用于提交前阻止表单提交,如果为false则提交,为true则不提交!

 check()为提交前的验证函数,如果不符合就return false,阻止表单提交,下为样文:

<form action="4.php" method="post" onSubmit="return check()" enctype="multipart/form-data">//enctype设置文件上传的格式(该格式为上传文件的必要格式)
    <input id="name" type="text" placeholder="请输入姓名">
    <input id="paw" type="text" placeholder="请输入密码">
    <input type="file">
    <input type="submit" value="提交">
</form>
<script>
    check(){
        var name=document.getElementById("name");
        var paw=document.getElementById("paw");
        if(name==""&&paw==""){
            return false;
        }else{
       return true;
     } }
</script>

 

 

2:使用ajax实现异步提交:

 一:创建XMLHttpRequest核心对象(老师要求必须默写出来)

function getXhr(){
     var xhr=null;
     if(window.XMLHttpRequest){
         xhr=new XMLHttpRequest;//除IE8外的其他浏览器  
     }else{
         xhr=new ActiveXobject('Microsoft.XMLHttp');//IE8浏览器
     }
     return xhr;
}    

 二:建立连接并提交(post)

<body>
    <form action="3.php" method="post" id="myform" name="myform">
        用户名:<input type="text" id="user" name="user"><br>
        密码:<input type="text" id="paw" name="paw"><br>
        <input type="button" value="提交" id="btn">
    </form>
</body>
<script>
    var btn=document.getElementById("btn");
    btn.onclick=function(){
        var xhr=getXhr();
        xhr.open("post","3.php");//与服务器建立连接
        xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");//设置post的请求头
        var user=document.getElementById("user").value;//获取到name值
        var paw=document.getElementById("paw").value;//获取到paw值
        xhr.send("user="+user+"&paw="+paw);//客户端向服务器端发送请求
        xhr.onreadystatechange=function(){//客户端接受服务器端的响应
            //保证服务器端响应的数据发送完毕
            if(xhr.readyState==4){
                //保证这次请求是成功的,状态码为200是成功
                if(xhr.status==200){
                    //接受服务器端的数据
                    var data=xhr.responseText;
                    //测试
                    console.log(data);
                }
            }
        }
    }
</script>

  二:建立连接并提交(get)

<script>
        var btn=document.getElementById("btn");
        btn.onclick=function(){
            var xhr=getxhr();//创建XMLHttpRequest对象
       var user=document.getElementById("user").value;//获取到name值
          var paw=document.getElementById("paw").value;//获取到paw值
        xhr.open("get","3.php?user="+user+"&paw="+paw+");//与服务器建立连接 
       xhr.send(null);//客户端向服务器端发送请求
xhr.onreadystatechange=function(){//客户端接受服务器端的响应
                //alert(xhr.readyState);
                //保证服务器端响应的数据发送完毕
                if(xhr.readyState==4){
                    //保证这次请求是成功的,状态码为200是成功
                    if(xhr.status==200){
                        //接受服务器端的数据
                        var data=xhr.responseText;
                        //测试
                        console.log(data);
                    }
                }
            }
        }
    </script>

 注:send不管是post还是get都不能省略,get类型的send为send(null)并不能向服务器发送请求数据

 

 

 

3. jQuery中的ajax提交:

 比较常用的

$get(url,data,callback,type)
//url:提交地址     data:提交数据    callback:回调函数     type:指定从服务器端回来的数据格式,默认为HTML格式,其他还有xml,json。
//post和它一样,只需将get修改为post即可。

 不常用的

$ajax({
        url:"4.php",//设置请求地址
        type:"post",//设置请求方式
        async:"true",//设置是否异步请求
        data:{name:"david",age:"20"},//发送请求的数据。只能为key:value格式
        success:function(data,textStatus){//成功后的回调函数
            console.log(data);
        },
        error:function(XMLHttpRequest,textStatus,errorThrown){//失败后的回调函数
            console.log(textStatus);
        },
    })