jquery表单插件form使用方法详解


Posted in Javascript onJanuary 20, 2017

传统的表单提交,都是页面跳转的形式,但是现在更流行ajax提交,那么如果希望有表单提交的简便,也有ajax的效果,有什么解决办法吗?

怎么使用

两种使用方式:

第一种方式

<!DOCTYPE html>
 <html lang="en">
 <head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script src="js/jquery-1.9.1.min.js"></script>
  <script src="js/jquery-form.js"></script>
  <script>
   // 使用ajaxForm
   $(function(){
    $("#myForm").ajaxForm(function(){
     $("#output1").html("提交成功").show();
    })
   })
  </script>
 </head>
 <body>
  <form id="myForm">
   <input type="text" name="username">
   <input type="text" name="password">
   <input type="submit" value="提交">
   <div id="output1" style="display: none"></div>
  </form>
 </body>
 </html>

第二种方式

<!DOCTYPE html>
 <html lang="en">
 <head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script src="js/jquery-1.9.1.min.js"></script>
  <script src="js/jquery-form.js"></script>
  <script>
   $(function(){
    //方式二 与方式一效果一样
    $("#myForm").submit(function(){
     // 使用ajaxSubmit
     $(this).ajaxSubmit(function(){
      $("#output1").html("提交成功").show();
     });
     return false;
    })
   })
  </script>
 </head>
 <body>
  <form id="myForm">
   <input type="text" name="username">
   <input type="text" name="password">
   <input type="submit" value="提交">
   <div id="output1" style="display: none"></div>
  </form>
 </body>
 </html>

感觉上第一种要 更方便一点。
其中的参数function()是提交成功后的回调函数。

利用这种提交方式,可以实现异步表单提交,很方便。但是,还是有点不满足,比如说,我可能想在提交表单之前验证一下,虽然可以手动地在提交表单动作之外完成,但是很麻烦。form插件有没有继承这样的功能呢?

二、options参数

上面只讲了form中的一个function回调函数参数,其实它还有一个参数,就是options。有什么用呢?

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
 <script src="js/jquery-1.9.1.min.js"></script>
 <script src="js/jquery-form.js"></script>
 <script>

  var options = {
   target:'#output1',   // 把服务器返回的内容放入id为output1的元素中
   beforeSubmit: fun1,   // 提交前的回调函数
   success:  fun2,   // 提交后的回调函数
   dataType:     // 接收服务端返回的类型 xml,scrpit,json
  };

  // beforeSubmit前可以作验证
  function fun1(formData,jqForm,options){
   // formData 提交值的数组对象
   // jqForm 表单元素的jQuery对象,jqForm[0]是其dom对象
   // 该函数如果返回false,则阻止表单提交

   // formData可以判断全部不为空的情况
   for(var i=0;i<formData.length;i++){
    if(!formData[i].value){
     alert("都不能为空");
     return false;
    }
   }

   // jqForm可以判断某个不为空的情况
   var form = jqForm[0];
   if(!form.name.value){
    alert("name不能为空");
    return false;
   }

   // fieldValue()可以获取多值的数组形式,如checkbox
   var value = $('input[name=name]').fieldValue();
   if(!value[0]){
    return false;
   }
  }
  function fun2(responseText, statusText){
   // 根据dataType不同responseText解析方式不同,
   // 默认  responseText
   // xml  responseXml以xml解析
   // json  responseJson
  }

  $(function(){
   //方式二 与方式一效果一样
   $("#myForm").ajaxForm(options); // 要想使options生效,需要作为参数传递
  })
 </script>
</head>
<body>
 <form id="myForm">
  <input type="text" name="username">
  <input type="text" name="password">
  <input type="submit" value="提交">
  <div id="output1" style="display: none"></div>
 </form>
</body>
</html>

可以看出,在beforeSubmit的回调函数fun1中,我们有三种方式获取表单数据 formData,jqForm,fieldValue 满足了各种获取值的方式,想怎么验证怎么验证。只要返回false就能阻止表单提交sucess回调的fun2也有状态值和服务端的返回数据,想怎么处理怎么处理。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
关于JavaScript的gzip静态压缩方法
Jan 05 Javascript
Javascript延迟执行实现方法(setTimeout)
Dec 30 Javascript
用jquery.sortElements实现table排序
May 04 Javascript
AngularJS表单详解及示例代码
Aug 17 Javascript
JS取数字小数点后两位或n位的简单方法
Oct 24 Javascript
详解在Vue中使用TypeScript的一些思考(实践)
Jul 06 Javascript
微信小程序实现左滑修改、删除功能
Oct 19 Javascript
node中IO以及定时器优先级详解
May 10 Javascript
js针对图片加载失败的处理方法分析
Aug 24 Javascript
VUE 解决mode为history页面为空白的问题
Nov 01 Javascript
Vue中axios拦截器如何单独配置token
Dec 27 Javascript
js+css3实现炫酷时钟
Aug 18 Javascript
AngularJs上传前预览图片的实例代码
Jan 20 #Javascript
详解JavaScript中this的指向问题
Jan 20 #Javascript
详解微信小程序入门五: wxml文件引用、模版、生命周期
Jan 20 #Javascript
浅谈JavaScript异步编程
Jan 20 #Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
Jan 20 #Javascript
小程序开发实战:实现九宫格界面的导航的代码实现
Jan 19 #Javascript
BootStrap组件之进度条的基本用法
Jan 19 #Javascript
You might like
无线电的诞生过程
2021/03/01 无线电
坏狼的PHP学习教程之第1天
2008/06/15 PHP
PHP 获取远程文件内容的函数代码
2010/03/24 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
javascript parseInt 大改造
2009/09/27 Javascript
js 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
2009/11/26 Javascript
JQuery.ajax传递中文参数的解决方法 推荐
2011/03/28 Javascript
JS简单的轮播的图片滚动实例
2013/06/17 Javascript
javascript代码运行不出来执行错误的可能情况整理
2013/10/18 Javascript
jQuery实现回车键(Enter)切换文本框焦点的代码实例
2014/05/05 Javascript
原生js实现图片层叠轮播切换效果
2016/02/02 Javascript
Ionic默认的Tabs模板使用实例
2016/08/29 Javascript
详解webpack+vue-cli项目打包技巧
2017/06/17 Javascript
vue组件之Alert的实现代码
2017/10/17 Javascript
vue.js 实现输入框动态添加功能
2018/06/25 Javascript
IE9 elementUI文件上传的问题解决
2018/10/17 Javascript
浅谈Vuex注入Vue生命周期的过程
2019/05/20 Javascript
微信小程序列表时间戳转换实现过程解析
2019/10/12 Javascript
浅谈Python实现Apriori算法介绍
2017/12/20 Python
Django使用Mysql数据库已经存在的数据表方法
2018/05/27 Python
python 字典 按key值大小 倒序取值的实例
2018/07/06 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
2019/12/05 Python
Python super()方法原理详解
2020/03/31 Python
无需JS和jQuery代码实现CSS3鼠标浮动放大图片
2016/11/21 HTML / CSS
中国医药集团国药在线:国药网
2017/02/06 全球购物
Mamaearth官方网站:印度母婴护理产品公司
2019/10/06 全球购物
Bluebella德国官网:英国性感内衣和睡衣品牌
2019/11/08 全球购物
美国领先的宠物用品和宠物食品零售商:Petco
2020/10/28 全球购物
3.12植树节活动总结2014
2014/03/13 职场文书
满月酒主持词
2014/03/27 职场文书
2014世界杯球队球队口号
2014/06/05 职场文书
2015年度工程师评职称工作总结
2015/10/14 职场文书
四年级数学教学反思
2016/02/16 职场文书
Pytorch中Softmax和LogSoftmax的使用详解
2021/06/05 Python
java固定大小队列的几种实现方式详解
2021/07/15 Java/Android
Springboot-cli 开发脚手架,权限认证,附demo演示
2022/04/28 Java/Android