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 相关文章推荐
js 实现复制到粘贴板的功能代码
May 13 Javascript
jquery jqPlot API 中文使用教程(非常强大的图表工具)
Aug 15 Javascript
JQuery Highcharts 动态生成图表的方法
Nov 15 Javascript
jQuery消息提示框插件Tipso
May 04 Javascript
freemarker判断对象是否为空的方法
Aug 13 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
Sep 17 Javascript
jQuery简单获取DIV和A标签元素位置的方法
Feb 07 Javascript
为什么我们要做三份 Webpack 配置文件
Sep 18 Javascript
vue-cli 如何打包上线的方法示例
May 08 Javascript
layui radio单选限制下一个radio单选的实例
Sep 03 Javascript
JavaScript中判断为整数的多种方式及保留两位小数的方法
Sep 09 Javascript
JavaScript实现轮播图特效
Apr 10 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
杏林同学录(七)
2006/10/09 PHP
PHP判断远程url是否有效的几种方法小结
2011/10/08 PHP
php从给定url获取文件扩展名的方法
2015/03/14 PHP
php简单实现批量上传图片的方法
2016/05/09 PHP
PHP遍历目录文件的常用方法小结
2017/02/03 PHP
PHP编程中的Session阻塞问题与解决方法分析
2017/08/07 PHP
Laravel5.5 动态切换多语言的操作方式
2019/10/25 PHP
用jquery实现点击栏目背景色改变
2012/12/10 Javascript
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
2013/01/09 Javascript
详解在Vue中通过自定义指令获取dom元素
2017/03/04 Javascript
vue-router 组件复用问题详解
2018/01/22 Javascript
angularjs实现table增加tr的方法
2018/02/27 Javascript
浅谈vue项目如何打包扔向服务器
2018/05/08 Javascript
详解vue-cli3 中跨域解决方案
2019/04/10 Javascript
vue项目打包上传github并制作预览链接(pages)
2019/04/19 Javascript
微信小程序 调用远程接口 给全局数组赋值代码实例
2019/08/13 Javascript
centos下更新Python版本的步骤
2013/02/12 Python
python里将list中元素依次向前移动一位
2014/09/12 Python
对numpy 数组和矩阵的乘法的进一步理解
2018/04/04 Python
Python3使用SMTP发送带附件邮件
2020/06/16 Python
Python连接Mssql基础教程之Python库pymssql
2018/09/16 Python
对django2.0 关联表的必填on_delete参数的含义解析
2019/08/09 Python
python3实现弹弹球小游戏
2019/11/25 Python
使用python快速实现不同机器间文件夹共享方式
2019/12/22 Python
浅谈Python描述数据结构之KMP篇
2020/09/06 Python
Gweniss格温妮丝女包官网:英国纯手工制造潮流包包品牌
2018/02/07 全球购物
Capitol Lighting的1800lighting.com:住宅和商业照明
2019/04/10 全球购物
宗教学大学生职业生涯规划范文
2014/02/08 职场文书
出差报告格式模板
2014/11/06 职场文书
2014年计生工作总结
2014/11/21 职场文书
入党积极分子群众意见
2015/06/01 职场文书
导游词之安徽巢湖
2019/12/26 职场文书
SpringBoot+VUE实现数据表格的实战
2021/08/02 Java/Android
golang中的struct操作
2021/11/11 Golang
MySQL的表级锁,行级锁,排它锁和共享锁
2022/07/15 MySQL
LyScript实现绕过反调试保护的示例详解
2022/08/14 Python