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 相关文章推荐
jQuery EasyUI API 中文文档 - ValidateBox验证框
Oct 06 Javascript
基于jquery的防止大图片撑破页面的实现代码(立即缩放)
Oct 24 Javascript
jQuery中:input选择器用法实例
Jan 03 Javascript
jQuery操作基本控件方法实例分析
Dec 31 Javascript
浅谈javascript运算符——条件,逗号,赋值,()和void运算符
Jul 15 Javascript
jQuery图片轮播实现并封装(一)
Dec 03 Javascript
jQuery点击导航栏选中更换样式的实现代码
Jan 23 Javascript
微信小程序之购物车功能
Sep 23 Javascript
JavaScript实现异步图像上传功能
Jul 12 Javascript
vue.js+element-ui动态配置菜单的实例
Sep 07 Javascript
JS实现的tab切换并显示相应内容模块功能示例
Aug 03 Javascript
js正则匹配多个全部数据问题
Dec 20 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
php比较两个绝对时间的大小
2014/01/31 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
2016/02/23 PHP
理解Javascript_06_理解对象的创建过程
2010/10/15 Javascript
javascript ie6兼容position:fixed实现思路
2013/04/01 Javascript
javascript中动态函数用法实例分析
2015/05/14 Javascript
详解JavaScript ES6中的Generator
2015/07/28 Javascript
jQuery 选择器(61种)整理总结
2016/09/26 Javascript
JS实现一个简单的日历
2017/02/22 Javascript
基于Vue实例对象的数据选项
2017/08/09 Javascript
详解10分钟学会vue滚动行为
2017/09/21 Javascript
JS实现transform实现扇子效果
2020/01/17 Javascript
jQuery实现简易聊天框
2020/02/08 jQuery
用python实现批量重命名文件的代码
2012/05/25 Python
在Python中处理列表之reverse()方法的使用教程
2015/05/21 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
2017/02/14 Python
Python中一般处理中文的几种方法
2019/03/06 Python
Python3.5多进程原理与用法实例分析
2019/04/05 Python
Python后台开发Django会话控制的实现
2019/04/15 Python
anaconda如何查看并管理python环境
2019/07/05 Python
超简单的Python HTTP服务
2019/07/22 Python
解决python flask中config配置管理的问题
2019/07/26 Python
Python 函数绘图及函数图像微分与积分
2019/11/20 Python
matlab 计算灰度图像的一阶矩,二阶矩,三阶矩实例
2020/04/22 Python
keras做CNN的训练误差loss的下降操作
2020/06/22 Python
小结Python的反射机制
2020/09/28 Python
Python爬虫中Selenium实现文件上传
2020/12/04 Python
CSS3系列教程:背景图片(背景大小和多背景图) 应用说明
2012/12/19 HTML / CSS
ECCO爱步官方旗舰店:丹麦鞋履品牌
2018/01/02 全球购物
德国玩具商店:Planet Happy DE
2021/01/16 全球购物
2014年国培研修感言
2014/03/09 职场文书
实习推荐信格式模板
2015/03/27 职场文书
司机岗位职责范本
2015/04/10 职场文书
飞越疯人院观后感
2015/06/09 职场文书
教师节领导致辞
2015/07/29 职场文书
超详细Python解释器新手安装教程
2021/05/10 Python
浅谈CSS不规则边框的生成方案
2021/05/25 HTML / CSS