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 相关文章推荐
身份证号码前六位所代表的省,市,区, 以及地区编码下载
Apr 12 Javascript
jquery prop的使用介绍及与attr的区别
Dec 19 Javascript
javascript函数定义的几种区别小结
Jan 06 Javascript
JS动态修改iframe高度和宽度的方法
Apr 01 Javascript
JS实现从连接中获取youtube的key实例
Jul 02 Javascript
js简单判断flash是否加载完成的方法
Jun 21 Javascript
Windows系统下安装Node.js的步骤图文详解
Nov 15 Javascript
JS作用域深度解析
Dec 29 Javascript
详解vue中点击空白处隐藏div的实现(用指令实现)
Apr 19 Javascript
浅谈如何使用webpack构建多页面应用
May 30 Javascript
vue中filters 传入两个参数 / 使用两个filters的实现方法
Jul 15 Javascript
通过javascript实现扫雷游戏代码实例
Feb 09 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
excellent!――ASCII Art(由目标图象生成ascii)
2007/02/20 PHP
鸡肋的PHP单例模式应用详解
2013/06/03 PHP
PHP中的reflection反射机制测试例子
2014/08/05 PHP
yii2项目实战之restful api授权验证详解
2017/05/20 PHP
php + WebUploader实现图片批量上传功能
2019/05/06 PHP
PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能
2019/05/21 PHP
理解Javascript_03_javascript全局观
2010/10/11 Javascript
javascript之querySelector和querySelectorAll使用说明
2011/10/09 Javascript
Javascript操作URL函数修改版
2013/11/07 Javascript
jquery操作cookie插件分享
2014/01/14 Javascript
javascript伸缩菜单栏实现代码分享
2015/11/12 Javascript
javascript移动开发中touch触摸事件详解
2016/03/18 Javascript
HTML Table 空白单元格补全的简单实现
2016/10/13 Javascript
JS中如何实现点击a标签返回页面顶部的问题
2017/01/19 Javascript
JavaScript数组去重算法实例小结
2018/05/07 Javascript
JavaScript实现预览本地上传图片功能完整示例
2019/03/08 Javascript
vue+axios全局添加请求头和参数操作
2020/07/24 Javascript
Python入门篇之对象类型
2014/10/17 Python
简单介绍Python中的struct模块
2015/04/28 Python
python UNIX_TIMESTAMP时间处理方法分析
2016/04/18 Python
Python实现导出数据生成excel报表的方法示例
2017/07/12 Python
pycharm+django创建一个搜索网页实例代码
2018/01/24 Python
对Tensorflow中权值和feature map的可视化详解
2018/06/14 Python
对Python Class之间函数的调用关系详解
2019/01/23 Python
Django框架搭建的简易图书信息网站案例
2019/05/25 Python
Python read函数按字节(字符)读取文件的实现
2019/07/03 Python
Django框架视图介绍与使用详解
2019/07/18 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
2019/08/23 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
2019/09/25 Python
html5弹跳球示例代码
2013/07/23 HTML / CSS
Rowdy Gentleman服装和配饰:美好时光
2019/09/24 全球购物
新闻系毕业生推荐信
2013/11/16 职场文书
超市开店计划书
2014/04/26 职场文书
2015年少先队活动总结
2015/03/25 职场文书
动画电影《擅长捉弄人的高木同学》6月10日上映!
2022/03/20 日漫
spring IOC容器的Bean管理XML自动装配过程
2022/05/30 Java/Android