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); }, })