jquery实现无刷新提交表单

本文介绍如何使用Ajax技术优化HTML表单提交过程,避免页面刷新,并实现更友好的用户体验。文章详细解释了如何利用jQuery阻止默认表单提交行为,序列化表单数据并将其转换为JSON格式,最后通过Ajax进行异步提交。
使用ajax

设置一个表单,如:
<form id="myForm">
  <input type="text" value="" name="username">
  <input type="password" value="" name="password">
</form>

监听.submit事件,可以在触发表单提交时的事件,通过return false或者event.preventDefault()来阻止默认的表单提交事件

即:

$("#myForm").submit(function(e){
    //一般使用return fasle来阻止表提交和刷新页面的事件
   //可以通过.serialize()获取和将表单里面的数据格式化为key=value&key=value的形式
  //或者是使用.serializeArray()将表单里面的数据格式化为数组格式即会变成[{name:"inpue的name",value:"input的value"}]
 //可以自己封装不同的js函数来将表单数据转化成json格式
 var data = $(this).serialzeJson();

 $.ajax({});//通过ajax来提交表单

 return false;//阻止默认的表单提交事件
});

//通过jquery的插件扩展方式将表单数据序列化为json格式

$.fn.serialzeJson = function(){
     var o = {};    
   var a = this.serializeArray();    
   $.each(a, function() {    

       if (o[this.name]) { //如果已经存在该键值对的input,将其余相同name的input的value的值放在同一个key下,为该key的value值设置为一个数组   

           if (!o[this.name].push) {    

               o[this.name] = [o[this.name]];    

           }    

           o[this.name].push(this.value || '');    

       } else {    

           o[this.name] = this.value || '';    

       }    

   });    

   return o; 

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值