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 相关文章推荐
jQuery getJSON()+.ashx 实现分页(改进版)
Mar 28 Javascript
js实现屏幕自适应局部代码分享
Jan 30 Javascript
15位和18位身份证JS校验的简单实例
Jul 18 Javascript
BootStrap中的表单大全
Sep 07 Javascript
详谈JS中数组的迭代方法和归并方法
Aug 11 Javascript
原生js中ajax访问的实例详解
Sep 19 Javascript
使用Angular CLI进行Build(构建)和Serve详解
Mar 24 Javascript
iview同时验证多个表单问题总结
Sep 29 Javascript
在vue中把含有html标签转为html渲染页面的实例
Oct 28 Javascript
使用vue-router切换页面时实现设置过渡动画
Oct 31 Javascript
在vue中给后台接口传的值为数组的格式代码
Nov 12 Javascript
微信小程序实现音乐播放页面布局
Dec 11 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制作静态网站的模板框架(二)
2006/10/09 PHP
php 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
2008/11/14 PHP
PHP独立Session数据库存储操作类分享
2014/06/11 PHP
脚本收藏iframe
2006/07/21 Javascript
IE6、IE7中获取Button元素的值的bug说明
2011/08/28 Javascript
imgAreaSelect 中文文档帮助说明
2011/10/08 Javascript
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
2012/02/16 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
Jquery对select的增、删、改、查操作
2015/02/06 Javascript
JavaScript实现仿新浪微博大厅和腾讯微博首页滚动特效源码
2015/09/15 Javascript
动态加载js文件简单示例
2016/04/21 Javascript
js实现倒计时及时间对象
2016/11/15 Javascript
xmlplus组件设计系列之路由(ViewStack)(7)
2017/05/02 Javascript
JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
2017/06/19 Javascript
vue页面跳转后返回原页面初始位置方法
2018/02/11 Javascript
vue 注册组件的使用详解
2018/05/05 Javascript
jQuery中将json数据显示到页面表格的方法
2018/05/27 jQuery
微信小程序实现默认第一个选中变色效果
2018/07/17 Javascript
详解Vue CLI 3.0脚手架如何mock数据
2018/11/23 Javascript
使用koa-log4管理nodeJs日志笔记的使用方法
2018/11/30 NodeJs
详解NodeJs项目 CentOs linux服务器线上部署
2019/09/16 NodeJs
uni-app使用countdown插件实现倒计时
2020/11/01 Javascript
浅析VUE防抖与节流
2020/11/24 Vue.js
JavaScript 生成唯一ID的几种方式
2021/02/19 Javascript
Python执行时间的计算方法小结
2017/03/17 Python
Python实现获取命令行输出结果的方法
2017/06/10 Python
Django restframework 源码分析之认证详解
2019/02/22 Python
Python中常用的8种字符串操作方法
2019/05/06 Python
Python OpenCV实现视频分帧
2019/06/01 Python
python json.dumps中文乱码问题解决
2020/04/01 Python
关于Keras Dense层整理
2020/05/21 Python
keras小技巧——获取某一个网络层的输出方式
2020/05/23 Python
英国123鲜花网站:123 Flowers
2019/07/07 全球购物
法国体育用品商店:GO Sport
2019/10/23 全球购物
ORACLE十问
2015/04/20 面试题
2014全年工作总结
2014/11/27 职场文书