jQuery实现form表单基于ajax无刷新提交方法详解


Posted in Javascript onDecember 08, 2015

本文实例讲述了jQuery实现form表单基于ajax无刷新提交方法。分享给大家供大家参考,具体如下:

首先,新建Login.html页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <title>$.ajax()方法发送请求</title>
 <script type="text/javascript" src="js/jquery-1.4.1.js"></script>
 <style type="text/css">
  body
  {
   font-size: 13px;
  }
  .divFrame
  {
   width: 225px;
   border: solid 1px #666;
  }
  .divFrame .divTitle
  {
   padding: 5px;
   background-color: #eee;
   height: 23px;
  }
  .divFrame .divTitle span
  {
   float: left;
   padding: 2px;
   padding-top: 5px;
  }
  .divFrame .divContent
  {
   padding: 8px;
   text-align: center;
  }
  .divFrame .divContent .clsShow
  {
   font-size: 14px;
   line-height: 2.0em;
  }
  .divFrame .divContent .clsShow .clsError
  {
   font-size: 13px;
   border: solid 1px #cc3300;
   padding: 2px;
   display: none;
   margin-bottom: 5px;
   background-color: #ffe0a3;
  }
  .txt
  {
   border: #666 1px solid;
   padding: 2px;
   width: 150px;
   margin-right: 3px;
  }
  .btn
  {
   border: #666 1px solid;
   padding: 2px;
   width: 50px;
  }
 </style>
 <script type="text/javascript">
  $(function () {
   $("#txtName").focus();//输入焦点
   $("#txtName").keydown(function (event) {
    if (event.which == "13") {//回车键,移动光标到密码框
     $("#txtPass").focus();
    }
   });
   $("#txtPass").keydown(function (event) {
    if (event.which == "13") {//回车键,用.ajax提交表单
     $("#btnLogin").trigger("click");
    }
   });
   $("#btnLogin").click(function () { //“登录”按钮单击事件
    //获取用户名称
    var strTxtName = encodeURI($("#txtName").val());
    //获取输入密码
    var strTxtPass = encodeURI($("#txtPass").val());
    //开始发送数据
    $.ajax
    ({ //请求登录处理页
     url: "Login.aspx", //登录处理页
     dataType: "html",
     //传送请求数据
     data: { txtName: strTxtName, txtPass: strTxtPass },
     success: function (strValue) { //登录成功后返回的数据
      //根据返回值进行状态显示
      if (strValue == "True") {//注意是True,不是true
       $(".clsShow").html("操作提示,登录成功!" + strValue);
      }
      else {
       $("#divError").show().html("用户名或密码错误!" + strValue);
      }
     }
    })
   })
  })
 </script>
</head>
<body>
 <form id="frmUserLogin">
 <div class="divFrame">
  <div class="divTitle">
   <span>用户登录</span>
  </div>
  <div class="divContent">
   <div class="clsShow">
    <div id="divError" class="clsError">
    </div>
    <div>
     名称:<input id="txtName" type="text" class="txt" /></div>
    <div>
     密码:<input id="txtPass" type="password" class="txt" /></div>
    <div>
     <input id="btnLogin" type="button" value="登录" class="btn" />  
     <input id="btnReset" type="reset" value="取消" class="btn" />
    </div>
   </div>
  </div>
 </div>
 </form>
</body>
</html>

然后,新建Login.aspx,接收并处理数据:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="JSDemo.Login" ResponseEncoding="gb2312"%>
<%
 string strName = System.Web.HttpUtility.UrlDecode(Request["txtName"]);
 string strPass = System.Web.HttpUtility.UrlDecode(Request["txtPass"]);
 bool login = false;
 if (strName == "admin" && strPass == "admin")
 {
  login = true;
 }
 Response.Write(login);
%>

补充:form使用AJAX提交完整实例:

//将form转换为AJAX提交
 function ajaxSubmit(url,frm,fn){
  var dataPara=getFormJson(frm);
  $.ajax({
   url:url,
   type:"post",
   data:dataPara,
   async:false,
   dataType:'txt',
   success:fn
  });
 }
 //将form中的值转换为键值对
 function getFormJson(frm){
  var o={};
  var a=$(frm).serializeArray();
  $.each(a,function(){
   if(o[this.name]!==undefined){
    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;
 }
/*
 //前台调用方式
 function autoSubmitFun(){
   ajaxSubmit("autoSumitScoreAJAX.action",$('#formId'),function(){});
 }
*/

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
Javascript拓展String方法小结
Jul 08 Javascript
jquery $(&quot;#variable&quot;) 循环改变variable的值示例
Feb 23 Javascript
$(document).ready(function() {})不执行初始化脚本
Jun 19 Javascript
如何判断Javascript对象是否存在的简单实例
May 18 Javascript
基于jQuery实现表格内容的筛选功能
Aug 21 Javascript
jquery Banner轮播选项卡
Dec 26 Javascript
React快速入门教程
Jan 17 Javascript
微信小程序之swiper滑动面板用法示例
Dec 04 Javascript
JavaScript实现随机点名器实例详解
May 07 Javascript
js实现坦克大战游戏
Feb 24 Javascript
编写一个javascript元循环求值器的方法
Apr 14 Javascript
浅谈JavaScript节流和防抖函数
Aug 25 Javascript
JS判断当前页面是否在微信浏览器打开的方法
Dec 08 #Javascript
js实现兼容IE、Firefox的图片缩放代码
Dec 08 #Javascript
JS实现按比例缩放图片的方法(附C#版代码)
Dec 08 #Javascript
JS获取文件大小方法小结
Dec 08 #Javascript
js+ajax实现获取文件大小的方法
Dec 08 #Javascript
JS表格组件神器bootstrap table详解(基础版)
Dec 08 #Javascript
详解js中构造流程图的核心技术JsPlumb(2)
Dec 08 #Javascript
You might like
PHP下几种删除目录的方法总结
2007/08/19 PHP
使用JSON实现数据的跨域传输的php代码
2011/12/20 PHP
仿Aspnetpager的一个PHP分页类代码 附源码下载
2012/10/08 PHP
Linux php 中文乱码的快速解决方法
2016/05/13 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
2019/10/02 PHP
srcElement表格样式
2006/09/03 Javascript
JS解密入门之凭直觉解
2008/06/25 Javascript
在js中单选框和复选框获取值的方式
2009/11/06 Javascript
JavaScript遍历求解数独问题的主要思路小结
2016/06/12 Javascript
分享JS数组求和与求最大值的方法
2016/08/11 Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
2016/12/21 Javascript
超全面的JavaScript开发规范(推荐)
2017/01/21 Javascript
原生js 封装get ,post, delete 请求的实例
2017/08/11 Javascript
ionic2屏幕适配实现适配手机、平板等设备的示例代码
2017/08/11 Javascript
详解vue渲染函数render的使用
2017/12/12 Javascript
vue脚手架搭建过程图解
2018/06/06 Javascript
详解关于vue2.0工程发布上线操作步骤
2018/09/27 Javascript
JavaScript中break、continue和return的用法区别实例分析
2020/03/02 Javascript
jQuery事件模型默认行为执行顺序及trigger()与 triggerHandler()比较实例分析
2020/04/30 jQuery
js实现滑动滑块验证登录
2020/07/24 Javascript
jQuery插件实现图片轮播效果
2020/10/19 jQuery
[41:52]2018DOTA2亚洲邀请赛3月29日 小组赛A组 TNC VS OpTic
2018/03/30 DOTA
python的dict,set,list,tuple应用详解
2014/07/24 Python
对Python中的@classmethod用法详解
2018/04/21 Python
pandas 透视表中文字段排序方法
2018/11/16 Python
在pandas中遍历DataFrame行的实现方法
2019/10/23 Python
德国便宜的宠物店:Brekz.de
2020/10/23 全球购物
物业管理毕业生的自我评价
2014/02/17 职场文书
广播节目策划方案
2014/05/23 职场文书
大学考试作弊检讨书
2015/05/06 职场文书
小学中队活动总结
2015/05/11 职场文书
英语教学课后反思
2016/02/15 职场文书
Mongo服务重启异常问题的处理方法
2021/07/01 MongoDB
使用 Apache Dubbo 实现远程通信(微服务架构)
2022/02/12 Servers
MySQL三种方式实现递归查询
2022/04/18 MySQL
浅谈css清除浮动(clearfix和clear)的用法
2023/05/21 HTML / CSS